예제 #1
0
def add_group_pgroup(gid, pgid):
    """Add a permissiongroup to a user group."""
    group = db_session.query(Group).filter_by(id=gid).first()
    pgroup = db_session.query(PermissionGroup).fiter_by(id=pgid).first()
    if group is None or pgroup is None:
        return Response(
            '{"error": "invalid id specified for group or pgroup"}', 400)
    group.permissions.add(pgroup)
    db_session.commit()
예제 #2
0
파일: auth_service.py 프로젝트: UWCS/CAS
def add_group_pgroup(gid, pgid):
    """Add a permissiongroup to a user group."""
    group = db_session.query(Group).filter_by(id=gid).first()
    pgroup = db_session.query(PermissionGroup).fiter_by(id=pgid).first()
    if group is None or pgroup is None:
        return Response(
                '{"error": "invalid id specified for group or pgroup"}', 400)
    group.permissions.add(pgroup)
    db_session.commit()
예제 #3
0
파일: authentication.py 프로젝트: UWCS/CAS
def in_group(uid, gid):
    user = db_session.query(User).filter_by(id=uid).first()
    if user is None:
        return False
    group = db_session.query(Group).filter_by(id=gid).first()
    if group is None:
        return False
    if group in user.groups:
        return True
    return False
예제 #4
0
파일: authentication.py 프로젝트: UWCS/CAS
def in_group(uid, gid):
    user = db_session.query(User).filter_by(id=uid).first()
    if user is None:
        return False
    group = db_session.query(Group).filter_by(id=gid).first()
    if group is None:
        return False
    if group in user.groups:
        return True
    return False
예제 #5
0
파일: wrappers.py 프로젝트: UWCS/CAS
 def wrapper(*args, **kwargs):
     user = db_session.query(User)\
             .filter_by(username=session.get('username'))\
             .first()
     if user is None:
         raise Exception('User not found! Cookies compromised?')
     permission_group = db_session.query(PermissionGroup)\
             .filter_by(name=pgroup)\
             .first()
     if permission_group is None:
         raise Exception('Specified permission group is not found')
     for group in user.groups:
         if permission_group in group.permissions:
             f(*args, **kwargs)  # We have approval to run.
     return Response("Access denied", 403)
예제 #6
0
파일: authentication.py 프로젝트: UWCS/CAS
def group_has_permission(gid, pgroup_name):
    """Check weather a group has a specific permission."""
    group = db_session.query(Group).filter_by(id=group)
    if group is None:
        return False

    permission_group = db_session.query(PermissionGroup)\
            .filter_by(name=pgroup_name)\
            .first()
    if permission_group is None:
        raise Exception("No such permission group")

    if permission_group in group.permissions:
        return True
    return False
예제 #7
0
파일: authentication.py 프로젝트: UWCS/CAS
def group_has_permission(gid, pgroup_name):
    """Check weather a group has a specific permission."""
    group = db_session.query(Group).filter_by(id=group)
    if group is None:
        return False

    permission_group = db_session.query(PermissionGroup)\
            .filter_by(name=pgroup_name)\
            .first()
    if permission_group is None:
        raise Exception("No such permission group")

    if permission_group in group.permissions:
        return True
    return False
예제 #8
0
파일: wrappers.py 프로젝트: UWCS/CAS
 def wrapper(*args, **kwargs):
     user = db_session.query(User)\
             .filter_by(username=session.get('username'))\
             .first()
     if user is None:
         raise Exception('User not found! Cookies compromised?')
     permission_group = db_session.query(PermissionGroup)\
             .filter_by(name=pgroup)\
             .first()
     if permission_group is None:
         raise Exception('Specified permission group is not found')
     for group in user.groups:
         if permission_group in group.permissions:
             f(*args, **kwargs)  # We have approval to run.
     return Response("Access denied", 403)
예제 #9
0
파일: auth_service.py 프로젝트: UWCS/CAS
def view_user(uid):
    """View a user given a uid."""
    user = db_session.query(User).filter_by(id=uid).first()
    if user is None:
        return Response('{"error": "User ' + str(id) + ' not found"}',
                status=404, mimetype="application/json")
    return jsonify(dict(data=user))
예제 #10
0
파일: auth_service.py 프로젝트: UWCS/CAS
def view_group(gid):
    """View a group given its id."""
    group = db_session.query(Group).filter_by(id=gid).first()
    if group is None:
        return Response('{"error": "User ' + str(id) + ' not found"}',
                status=404, mimetype="application/json")
    return jsonify(dict(data=group))
예제 #11
0
def view_group(gid):
    """View a group given its id."""
    group = db_session.query(Group).filter_by(id=gid).first()
    if group is None:
        return Response('{"error": "User ' + str(id) + ' not found"}',
                        status=404,
                        mimetype="application/json")
    return jsonify(dict(data=group))
예제 #12
0
def view_user(uid):
    """View a user given a uid."""
    user = db_session.query(User).filter_by(id=uid).first()
    if user is None:
        return Response('{"error": "User ' + str(id) + ' not found"}',
                        status=404,
                        mimetype="application/json")
    return jsonify(dict(data=user))
예제 #13
0
파일: auth_service.py 프로젝트: UWCS/CAS
def add_group_user(gid, uid):
    """Add a user to a group."""
    group = db_session.query(Group).filter_by(id=gid).first()
    user = db_session.query(User).filter_by(id=uid).first()

    if group is None or user is None:
        return Response('{"error": "User or Group not found"}',
                status=404, mimetype="application/json")

    usergroup = db_session.query(UserGroup)\
            .filter_by(user_id=uid, group_id=gid).first()
    if usergroup is not None:
        return Response('{"error": "User already in group!"}',
                status=404, mimetype="application/json")

    usergroup = UserGroup(uid, gid, "Because rayhaan said so")
    db_session.add(usergroup)
    db_session.commit()

    return jsonify(dict(data=usergroup))
예제 #14
0
파일: authentication.py 프로젝트: UWCS/CAS
def check_login(username, password):
    """Verify if this user exists and has the right password."""
    user = db_session.query(User)\
            .filter_by(username=username).first()
    if user is None:
        return False

    # Check if the user only has an old login, if so try and update it.
    if user.password is not None:
        return user.check_password(password)
    else:
        return check_legacy_password(password)
예제 #15
0
파일: authentication.py 프로젝트: UWCS/CAS
def check_login(username, password):
    """Verify if this user exists and has the right password."""
    user = db_session.query(User)\
            .filter_by(username=username).first()
    if user is None:
        return False

    # Check if the user only has an old login, if so try and update it.
    if user.password is not None:
        return user.check_password(password)
    else:
        return check_legacy_password(password)
예제 #16
0
def add_group_user(gid, uid):
    """Add a user to a group."""
    group = db_session.query(Group).filter_by(id=gid).first()
    user = db_session.query(User).filter_by(id=uid).first()

    if group is None or user is None:
        return Response('{"error": "User or Group not found"}',
                        status=404,
                        mimetype="application/json")

    usergroup = db_session.query(UserGroup)\
            .filter_by(user_id=uid, group_id=gid).first()
    if usergroup is not None:
        return Response('{"error": "User already in group!"}',
                        status=404,
                        mimetype="application/json")

    usergroup = UserGroup(uid, gid, "Because rayhaan said so")
    db_session.add(usergroup)
    db_session.commit()

    return jsonify(dict(data=usergroup))
예제 #17
0
def enroll_response():
    username = session.get('username')
    user = db_session.query(User).filter_by(username=username).first()

    response = dict(registrationData=session.get('registrationData'),
                    clientData=session.get('clientData'))

    binding, cert = complete_register(session.get('u2f_enroll'), response,
                                      'http://localhost:5000')

    user.u2f_binding = binding.json
    db_session.commit()

    print binding.json
    print cert.as_text()
    return Response('Enrolled token!')
예제 #18
0
파일: u2f_service.py 프로젝트: UWCS/CAS
def enroll_response():
    username = session.get('username')
    user = db_session.query(User).filter_by(username=username).first()

    response = dict(registrationData=session.get('registrationData'),
            clientData=session.get('clientData'))

    binding, cert = complete_register(session.get('u2f_enroll'),
            response, 'http://localhost:5000')

    user.u2f_binding = binding.json
    db_session.commit()

    print binding.json
    print cert.as_text()
    return Response('Enrolled token!')
예제 #19
0
def edit_user(uid):
    user = db_session.query(User).filter_by(id=uid).first()
    if user is None:
        return abort(404)
    return render_template('edit_user.html', user=user)
예제 #20
0
def get_permission_groups():
    """Return all permission groups."""
    permisisongroups = db_session.query(PermissionGroup)
    return jsonify(dict(data=permisisongroups))
예제 #21
0
def get_users():
    """Return all users."""
    users = db_session.query(User)
    return jsonify(dict(data=users))
예제 #22
0
파일: auth_service.py 프로젝트: UWCS/CAS
def get_groups():
    """Return all groups."""
    groups = db_session.query(Group)
    return jsonify(dict(data=groups))
예제 #23
0
파일: auth_service.py 프로젝트: UWCS/CAS
def get_permission_groups():
    """Return all permission groups."""
    permisisongroups = db_session.query(PermissionGroup)
    return jsonify(dict(data=permisisongroups))
예제 #24
0
파일: auth_service.py 프로젝트: UWCS/CAS
def get_users():
    """Return all users."""
    users = db_session.query(User)
    return jsonify(dict(data=users))
예제 #25
0
def get_groups():
    """Return all groups."""
    groups = db_session.query(Group)
    return jsonify(dict(data=groups))
예제 #26
0
def edit_user(uid):
    user = db_session.query(User).filter_by(id=uid).first()
    if user is None:
        return abort(404)
    return render_template('edit_user.html', user=user)