예제 #1
0
def deleteGroup(group):
    try:
        requester = auth.getJwtPayload(request.headers.get('Authorization'))
        crud.deleteGroup(db.session, group, requester)
        MVGroupPermission.refresh()
        db.session.commit()
        return formatResponse(200)
    except HTTPRequestError as err:
        return formatResponse(err.errorCode, err.message)
예제 #2
0
def updateGroup(group):
    try:
        requester = auth.getJwtPayload(request.headers.get('Authorization'))
        groupData = loadJsonFromRequest(request)
        crud.updateGroup(db.session, group, groupData, requester)
        db.session.commit()
        return formatResponse(200)
    except HTTPRequestError as err:
        return formatResponse(err.errorCode, err.message)
예제 #3
0
def addUserToGroup(user, group):
    try:
        requester = auth.getJwtPayload(request.headers.get('Authorization'))
        if request.method == 'POST':
            rship.addUserGroup(db.session, user, group, requester)
        else:
            rship.removeUserGroup(db.session, user, group, requester)
        db.session.commit()
        return formatResponse(200)
    except HTTPRequestError as err:
        return formatResponse(err.errorCode, err.message)
예제 #4
0
def removeUser(user):
    try:
        requester = auth.getJwtPayload(request.headers.get('Authorization'))
        oldUsername = crud.getUser(db.session, user).username
        crud.deleteUser(db.session, user, requester)
        kong.removeFromKong(oldUsername)
        MVUserPermission.refresh()
        MVGroupPermission.refresh()
        db.session.commit()
        return formatResponse(200, "User removed")
    except HTTPRequestError as err:
        return formatResponse(err.errorCode, err.message)
예제 #5
0
def addGroupPermission(group, permission):
    try:
        requester = auth.getJwtPayload(request.headers.get('Authorization'))
        if request.method == 'POST':
            rship.addGroupPermission(db.session, group, permission, requester)
        else:
            rship.removeGroupPermission(db.session, group,
                                        permission, requester)
        MVGroupPermission.refresh()
        db.session.commit()
        return formatResponse(200)
    except HTTPRequestError as err:
        return formatResponse(err.errorCode, err.message)
예제 #6
0
def createGroup():
    try:
        requester = auth.getJwtPayload(request.headers.get('Authorization'))
        groupData = loadJsonFromRequest(request)
        newGroup = crud.createGroup(db.session, groupData, requester)
        db.session.add(newGroup)
        db.session.commit()
        return make_response(json.dumps({
                                        "status": 200,
                                        "id": newGroup.id
                                        }), 200)
    except HTTPRequestError as err:
        return formatResponse(err.errorCode, err.message)
예제 #7
0
def updateUser(user):
    try:
        requester = auth.getJwtPayload(request.headers.get('Authorization'))
        authData = loadJsonFromRequest(request)
        oldUser = crud.updateUser(db.session, user, authData, requester)

        # Create a new kong secret and delete the old one
        kongData = kong.configureKong(oldUser.username)
        if kongData is None:
            return formatResponse(500,
                                  'failed to configure verification subsystem')

        kong.revokeKongSecret(oldUser.username, oldUser.kongId)
        oldUser.secret = kongData['secret']
        oldUser.key = kongData['key']
        oldUser.kongid = kongData['kongid']
        db.session.add(oldUser)
        db.session.commit()
        return formatResponse(200)

    except HTTPRequestError as err:
        return formatResponse(err.errorCode, err.message)
예제 #8
0
def createUser():
    try:
        requester = auth.getJwtPayload(request.headers.get('Authorization'))
        authData = loadJsonFromRequest(request)

        # Create user
        newUser = crud.createUser(db.session, authData, requester)

        # If no problems occur to create user (no exceptions), configure kong
        kongData = kong.configureKong(newUser.username)
        if kongData is None:
            return formatResponse(500,
                                  'failed to configure verification subsystem')
        newUser.secret = kongData['secret']
        newUser.key = kongData['key']
        newUser.kongId = kongData['kongid']

        db.session.add(newUser)
        db.session.commit()
        groupSuccess = []
        groupFailed = []
        if 'profile' in authData.keys():
            groupSuccess, groupFailed = rship. \
                addUserManyGroups(db.session, newUser.id,
                                  authData['profile'], requester)
        db.session.commit()
        if conf.emailHost != 'NOEMAIL':
            pwdc.createPasswordSetRequest(db.session, newUser)
            db.session.commit()
        return make_response(json.dumps({
                                        "user": newUser.safeDict(),
                                        "groups": groupSuccess,
                                        "could not add": groupFailed,
                                        "message": "user created"
                                        }), 200)
    except HTTPRequestError as err:
        return formatResponse(err.errorCode, err.message)