예제 #1
0
 def get(self, id):
     user = User.fetchone(id=id)
     userinfo = UserInfo.fetchone(user_id=id)
     return jsonify({
         'id': user.id,
         'fullname': user.fullname,
         'email': user.email,
         'permission_groups': userinfo.permission_groups.value
     })
예제 #2
0
    def patch(self, id):
        user = User.fetchone(id=id)
        userinfo = UserInfo.fetchone(user_id=id)
        user.email = request.get_json()['email']
        user.fullname = request.get_json()['fullname']
        password = request.get_json()['password']
        if password is not None and len(password) > 0:
            user.hash = argon2.hash(request.get_json()['password'])

        userinfo.permission_groups = request.get_json()['permissionGroups']
        try:
            user.save()
            userinfo.save()
        except UniqueViolatedError:
            # TODO: throw UniqueViolatedError in .save() method
            return jsonify(errors=["Duplicated email address"]), 409

        return jsonify(message='ok')
예제 #3
0
def get_user_info():
    """Get user_info from database then assign it to g.user"""
    if 'permission_groups' not in g.user:
        user_info = UserInfo.fetchone(user_id=g.user['id'])
        g.user['permission_groups'] = user_info.permission_groups.value