예제 #1
0
def role_post():
    """Function which adds new role into database.

    :rtype: JSON
    :request args: `{"role_name":"test"}`
    :return:
        - If there is already role with this name:
            ``{'error': 'role already exists'}``
        - If request data is invalid:
            ``{'status': False, 'error': [list of errors]}``
        - If all ok:
            ``{'added_role': 'role_name',
            'added_role_id': 'role_id'}``

    :statuscode 400: If role with this name exists or request is invalid
    :statuscode 200: If no errors

    """
    data = request.get_json()
    valid = validator.role_post(data)

    if valid['status']:
        if db.get_role_id(data['role_name']):
            return jsonify(error='role already exists'), 400

        db.insert_role(data['role_name'])
        added_role_id = db.get_role_id(data['role_name'])

        response = jsonify(added_role=data['role_name'],
                           added_role_id=added_role_id[0])
        session['access_control'] = permission_control.reload_dct()
    else:
        response = Response(json.dumps(valid),
                            mimetype='application/json'), 400
    return response
예제 #2
0
def role_post():
    """Function which adds new role into database.
    :return: If there is already role with this name:
                 {'error': 'role already exists'}, 400
             If request data is invalid:
                 {'status': False, 'error': [list of errors]}, 400
             If all ok:
                 {'added_role': 'role_name',
                  'added_role_id': 'role_id'}
    """
    data = request.get_json()
    valid = validator.role_post(data)

    if valid['status']:
        if db.get_role_id(data['role_name']):
            return jsonify(error='role already exists'), 400

        db.insert_role(data['role_name'])
        added_role_id = db.get_role_id(data['role_name'])

        response = jsonify(added_role=data['role_name'],
                           added_role_id=added_role_id[0])
        session['access_control'] = permission_control.reload_dct()
    else:
        response = Response(json.dumps(valid),
                            mimetype='application/json'), 400
    return response
예제 #3
0
def facebook_register(first_name, last_name, nickname, email, provider, uid):
    """This function registres user through facebook.
    It will insert user's data via insert_user function
    from util.
        :returns True if transaction finished successfully.
    """
    user = get_user_by_oauth_id(uid)
    is_registered = True
    if not user:
        user = get_user_by_email(email)
        is_registered = True
    if not user:
        is_registered = False
        password = random_password(10)
        salted_pass = hash_pass(password)
        role_id = util.get_role_id('user')
        register_user_id = util.facebook_insert(first_name, last_name,
                                                nickname, email, salted_pass,
                                                provider, uid)
        if register_user_id:
            util.add_users_role(register_user_id, role_id[0])
            user = get_user_by_oauth_id(uid)
        message = generate_email(
            'registration', _CONFIG['email.from_address'], email,
            (first_name, last_name, email, password, request.url_root))
        send_email(_CONFIG['email.server_name'], _CONFIG['email.user_name'],
                   _CONFIG['email.server_password'],
                   _CONFIG['email.from_address'], email, message)
    else:
        util.add_oauth_to_user(user.uid, provider, uid)
    return user, is_registered
예제 #4
0
def role_put():
    """Function which edits role name by it id.

    :rtype: JSON
    :request args: `{role_name: "new_name", role_id: 5}`
    :return:
        - If there is already resource with this name:
            ``{'error': 'this name already exists'}``
        - If request data is invalid:
            ``{'status': False, 'error': [list of errors]}``
        - If all ok:
            ``{'status': 'success', 'edited': 'resource_name'}``

    :statuscode 400: if role with this name exists or request is invalid
    :statuscode 200: if no errors

    """
    data = request.get_json()
    valid = validator.role_put(data)

    if valid['status']:
        if db.get_role_id(data['role_name']):
            return jsonify(error='this name already exists'), 400

        db.edit_role(data['role_name'], data['role_id'])
        response = jsonify(status='success', edited=data['role_name'])
        session['access_control'] = permission_control.reload_dct()
    else:
        response = Response(json.dumps(valid),
                            mimetype='application/json'), 400
    return response
예제 #5
0
def facebook_register(first_name, last_name, email, provider, uid):
    """This function registres user through facebook.
    It will insert user's data via insert_user function
    from util.
        :returns True if transaction finished successfully.
    """
    user = get_user_by_oauth_id(uid)
    if not user:
        user = get_user_by_email(email)
    if not user:
        password = random_password(10)
        salted_pass = hash_pass(password)
        role_id = util.get_role_id('user')
        register_user_id = util.facebook_insert(first_name,
                                                last_name, email,
                                                salted_pass,
                                                provider, uid)
        if register_user_id:
            util.add_users_role(register_user_id, role_id[0])
            user = get_user_by_oauth_id(uid)
        send_email(_CONFIG['email.user_name'], _CONFIG['email.app_password'],
                   first_name, last_name, email, password)
    else:
        util.add_oauth_to_user(user.uid, provider, uid)
    return user
예제 #6
0
def role_put():
    """Function which edits role name by it id.

    :rtype: JSON
    :request args: `{role_name: "new_name", role_id: 5}`
    :return:
        - If there is already resource with this name:
            ``{'error': 'this name already exists'}``
        - If request data is invalid:
            ``{'status': False, 'error': [list of errors]}``
        - If all ok:
            ``{'status': 'success', 'edited': 'resource_name'}``

    :statuscode 400: if role with this name exists or request is invalid
    :statuscode 200: if no errors

    """
    data = request.get_json()
    valid = validator.role_put(data)

    if valid['status']:
        if db.get_role_id(data['role_name']):
            return jsonify(error='this name already exists'), 400

        db.edit_role(data['role_name'], data['role_id'])
        response = jsonify(status='success',
                           edited=data['role_name'])
        session['access_control'] = permission_control.reload_dct()
    else:
        response = Response(json.dumps(valid),
                            mimetype='application/json'), 400
    return response
예제 #7
0
파일: user.py 프로젝트: timbortnik/EcoMap
def register(first_name, last_name, email, password):
    """This function registrates user.
    It will insert user's data via insert_user function
    from util.

        :returns True if transaction finished successfully.
    """
    salted_pass = hash_pass(password)
    role_id = util.get_role_id('user')
    register_user_id = util.insert_user(first_name, last_name, email,
                                        salted_pass)
    if register_user_id:
        util.add_users_role(register_user_id, role_id[0])
    send_email(_CONFIG['email.user_name'], _CONFIG['email.app_password'],
               first_name, last_name, email, password)
    return get_user_by_id(register_user_id)
예제 #8
0
def register(first_name, last_name, email, password):
    """This function registrates user.
    It will insert user's data via insert_user function
    from util.

        :returns True if transaction finished successfully.
    """
    salted_pass = hash_pass(password)
    role_id = util.get_role_id('user')
    register_user_id = util.insert_user(first_name, last_name,
                                        email, salted_pass)
    if register_user_id:
        util.add_users_role(register_user_id, role_id[0])
    send_email(_CONFIG['email.user_name'], _CONFIG['email.app_password'],
               first_name, last_name, email, password)
    return get_user_by_id(register_user_id)
예제 #9
0
def register(first_name, last_name, nickname, email, password):
    """This function registrates user.
    It will insert user's data via insert_user function
    from util.

        :returns True if transaction finished successfully.
    """
    salted_pass = hash_pass(password)
    role_id = util.get_role_id('user')
    register_user_id = util.insert_user(first_name, last_name, nickname, email,
                                        salted_pass)
    if register_user_id:
        util.add_users_role(register_user_id, role_id[0])
    message = generate_email(
        'registration', _CONFIG['email.from_address'], email,
        (first_name, last_name, email, password, request.url_root))
    send_email(_CONFIG['email.server_name'], _CONFIG['email.user_name'],
               _CONFIG['email.server_password'], _CONFIG['email.from_address'],
               email, message)
    return get_user_by_id(register_user_id)
예제 #10
0
파일: user.py 프로젝트: timbortnik/EcoMap
def facebook_register(first_name, last_name, email, provider, uid):
    """This function registres user through facebook.
    It will insert user's data via insert_user function
    from util.
        :returns True if transaction finished successfully.
    """
    user = get_user_by_oauth_id(uid)
    if not user:
        user = get_user_by_email(email)
    if not user:
        password = random_password(10)
        salted_pass = hash_pass(password)
        role_id = util.get_role_id('user')
        register_user_id = util.facebook_insert(first_name, last_name, email,
                                                salted_pass, provider, uid)
        if register_user_id:
            util.add_users_role(register_user_id, role_id[0])
            user = get_user_by_oauth_id(uid)
        send_email(_CONFIG['email.user_name'], _CONFIG['email.app_password'],
                   first_name, last_name, email, password)
    else:
        util.add_oauth_to_user(user.uid, provider, uid)
    return user
예제 #11
0
def register(first_name, last_name, nickname, email, password):
    """This function registrates user.
    It will insert user's data via insert_user function
    from util.

        :returns True if transaction finished successfully.
    """
    salted_pass = hash_pass(password)
    role_id = util.get_role_id('user')
    register_user_id = util.insert_user(first_name, last_name,
                                        nickname, email, salted_pass)
    if register_user_id:
        util.add_users_role(register_user_id, role_id[0])
    message = generate_email('registration', _CONFIG['email.from_address'],
                             email, (first_name, last_name, email,
                             password, request.url_root))
    send_email(_CONFIG['email.server_name'],
               _CONFIG['email.user_name'],
               _CONFIG['email.server_password'],
               _CONFIG['email.from_address'],
               email,
               message)
    return get_user_by_id(register_user_id)
예제 #12
0
def role_put():
    """Function which edits role name.
    :return: If there is already resource with this name:
                 {'error': 'this name already exists'}, 400
             If request data is invalid:
                 {'status': False, 'error': [list of errors]}, 400
             If all ok:
                 {'status': 'success', 'edited': 'resource_name'}
    """
    data = request.get_json()
    valid = validator.role_put(data)

    if valid['status']:
        if db.get_role_id(data['role_name']):
            return jsonify(error='this name already exists'), 400

        db.edit_role(data['role_name'], data['role_id'])
        response = jsonify(status='success', edited=data['role_name'])
        session['access_control'] = permission_control.reload_dct()
    else:
        response = Response(json.dumps(valid),
                            mimetype='application/json'), 400
    return response
예제 #13
0
def role_put():
    """Function which edits role name.
    :return: If there is already resource with this name:
                 {'error': 'this name already exists'}, 400
             If request data is invalid:
                 {'status': False, 'error': [list of errors]}, 400
             If all ok:
                 {'status': 'success', 'edited': 'resource_name'}
    """
    data = request.get_json()
    valid = validator.role_put(data)

    if valid['status']:
        if db.get_role_id(data['role_name']):
            return jsonify(error='this name already exists'), 400

        db.edit_role(data['role_name'], data['role_id'])
        response = jsonify(status='success',
                           edited=data['role_name'])
        session['access_control'] = permission_control.reload_dct()
    else:
        response = Response(json.dumps(valid),
                            mimetype='application/json'), 400
    return response
예제 #14
0
def facebook_register(first_name, last_name, nickname, email, provider, uid):
    """This function registres user through facebook.
    It will insert user's data via insert_user function
    from util.
        :returns True if transaction finished successfully.
    """
    user = get_user_by_oauth_id(uid)
    is_registered = True
    if not user:
        user = get_user_by_email(email)
        is_registered = True
    if not user:
        is_registered = False
        password = random_password(10)
        salted_pass = hash_pass(password)
        role_id = util.get_role_id('user')
        register_user_id = util.facebook_insert(first_name,
                                                last_name,
                                                nickname, email,
                                                salted_pass,
                                                provider, uid)
        if register_user_id:
            util.add_users_role(register_user_id, role_id[0])
            user = get_user_by_oauth_id(uid)
        message = generate_email('registration', _CONFIG['email.from_address'],
                                 email, (first_name, last_name,
                                 email, password, request.url_root))
        send_email(_CONFIG['email.server_name'],
                   _CONFIG['email.user_name'],
                   _CONFIG['email.server_password'],
                   _CONFIG['email.from_address'],
                   email,
                   message)
    else:
        util.add_oauth_to_user(user.uid, provider, uid)
    return user, is_registered