Пример #1
0
def edit_user(payload, user_id):
    try:
        data = request.get_json()
        if not data:
            return shortcuts.success('Nothing to do !')
        user = User.query.filter_by(id=user_id).first()
        msgs = []
        if 'username' in data and user.username != data['username']:
            user.username = data['username']
            msgs.append("Username has been changed")
        if 'password' in data:
            user.set_password(data['password'])
            msgs.append("Password has been changed")
        if 'email' in data and user.email != data['email']:
            user.email = data['email']
            msgs.append("Email has been changed")

        if msgs:
            db.session.add(user)
            db.session.commit()
            return shortcuts.success(msgs)

        return shortcuts.success("Nothing's changed !")
    except Exception as e:
        return shortcuts.error(e.args)
Пример #2
0
def login():
    data = request.get_json()
    try:
        someone = AuthService.instance().login(data['username'], data['password'])
        now = datetime.utcnow()
        payload = {
            'exp': expiration,
            'iat': now,
            'sub': someone.id,
            'username': someone.username
        }
        token = functions.get_token(payload)

        active_session = SessionService.instance().get(someone.id)
        if active_session and active_session.expiration > now:
            token = active_session.token
        elif active_session:
            SessionService.instance().delete(someone.id)
            SessionService.instance().set(someone.id, token, expiration)
        else:
            SessionService.instance().set(someone.id, token, expiration)

        return shortcuts.success('Welcome inside !', token=token)
    except Exception as e:
        LoggerService.instance().debug(e)
        return shortcuts.error('Invalid login !'), 401
Пример #3
0
def add_user(payload):
    if not request.get_json():
        return shortcuts.error('Malformed request'), 400
    try:
        data = request.get_json()
        new_user = User(data['username'], data['email'], data['password'])

        roles = _get_roles(data)
        for role in roles:
            new_user.roles.append(role)

        db.session.add(new_user)
        db.session.commit()

        return shortcuts.success('User has been successfully added !', new_user=new_user.id)
    except Exception as e:
        return shortcuts.error(e.args[0])
Пример #4
0
def delete_user(payload, user_id):
    try:
        user = User.query.filter_by(id=user_id).first()
        if user:
            db.session.delete(user)
            db.session.commit()
            return shortcuts.success('User has been successfully deleted !')
    except Exception as e:
        return shortcuts.error(e.args)
    return shortcuts.success("Nothing's to do !")
Пример #5
0
def set_user_roles(payload, user_id):
    try:
        user = User.query.filter_by(id=user_id).first()
        if user:
            roles = _get_roles(request.get_json())
            user.roles = roles

            db.session.add(user)
            db.session.commit()
            return shortcuts.success('Roles for user {} has been successfully modified !'.format(user_id))
        return shortcuts.success("Nothing's changed !")
    except Exception as e:
        return shortcuts.error(e.args)
Пример #6
0
def logout(payload):
    SessionService.instance().delete(payload['sub'])
    return shortcuts.error('Logged out !')
Пример #7
0
def get_user(payload, user_id):
    user = User.query.filter_by(id=user_id).first()
    if user:
        return shortcuts.success('', user=UserSchema().dump(user))
    return shortcuts.error('Not found !'), 404
Пример #8
0
def get_all_users(payload):
    users = User.query.all()
    if users:
        users = UserSchema(many=True).dump(users)
        return shortcuts.success(None, users=users)
    return shortcuts.error('Not found !'), 404