Exemple #1
0
    def put(self, id):

        parser = reqparse.RequestParser()
        parser.add_argument('username', type=str, location='json')
        parser.add_argument('password', type=str, location='json')
        parser.add_argument('email', type=str, location='json')
        parser.add_argument('first_name', type=str, location='json')
        parser.add_argument('last_name', type=str, location='json')
        parser.add_argument('is_admin', type=bool, location='json')
        parser.add_argument('is_active', type=bool, location='json')
        args = parser.parse_args()

        user_dao = UserDao(self.db_session())
        user = user_dao.retrieve(id=id)
        if user is None:
            return self.error_response('User {} not found'.format(id), http.NOT_FOUND_404)

        user.username = args['username']
        if args['password'] != '':
            user.password = args['password']
        user.email = args['email']
        user.first_name = args['first_name']
        user.last_name = args['last_name']
        user.is_admin = args['is_admin']
        user.is_active = args['is_active']

        user = user_dao.save(user)

        return self.response(user.to_dict())
Exemple #2
0
    def get(self, id):

        user_dao = UserDao(self.db_session())
        user = user_dao.retrieve(id=id)
        if user is None:
            return self.error_response('User {} not found'.format(id), http.NOT_FOUND_404)

        return self.response(user.to_dict())
Exemple #3
0
    def delete(self, id):

        user_dao = UserDao(self.db_session())
        user = user_dao.retrieve(id=id)
        if user is None:
            return self.error_response('User {} not found'.format(id), http.NOT_FOUND_404)
        user_dao.delete(user)

        return self.response({}, http.NO_CONTENT_204)
Exemple #4
0
def check_login(username, password):
    user_dao = UserDao(g.db_session)
    user = user_dao.retrieve(username=username)
    if user is None:
        return None, 'User {} not found'.format(username)
    if not user.is_active:
        return None, 'User {} no longer active'.format(username)
    if user.password != password:
        return None, 'Invalid password'
    return user, None
Exemple #5
0
def init_tables():
    user_dao = UserDao(db.session)
    for item in app.config['USERS']:
        user = user_dao.retrieve(username=item['username'])
        if user is None:
            user_dao.create(username=item['username'],
                            password=item['password'],
                            email=item['email'],
                            first_name=item['first_name'],
                            last_name=item['last_name'],
                            is_superuser=item['is_superuser'],
                            is_admin=item['is_admin'],
                            is_active=item['is_active'],
                            is_visible=item['is_visible'])
Exemple #6
0
    def delete(self, id, user_id):

        user_group_dao = UserGroupDao(self.db_session())
        user_group = user_group_dao.retrieve(id=id)
        if user_group is None:
            return self.error_response('User group {} not found'.format(id), http.NOT_FOUND_404)

        user_dao = UserDao(self.db_session())
        user = user_dao.retrieve(id=user_id)
        if user is None:
            return self.error_response('User {} not found'.format(id), http.NOT_FOUND_404)

        if user in user_group.users:
            user_group.users.remove(user)
            user_group = user_group_dao.save(user_group)

        return self.response(user_group.to_dict())
Exemple #7
0
def check_token(token):
    if 'SECRET_KEY' not in g.config.keys():
        return None, 'Could not retrieve secret key'
    secret = g.config['SECRET_KEY']
    if secret is None:
        return None, 'Secret key is empty'
    try:
        data = jwt.decode(token, secret, algorithms=['HS256'])
    except JWTError as e:
        return None, 'Could not decode token ({})'.format(e.message)
    user_dao = UserDao(g.db_session)
    user = user_dao.retrieve(id=data['id'])
    if user is None:
        return None, 'User {} not found'.format(data['id'])
    if not user.is_active:
        return None, 'User {} no longer active'.format(user.username)
    return user, None