def user():
    """
        update user info
    :return: respond model
    """
    request_model = RequestModel(request)
    user_info_form = request_model.data.get('user_info')
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    respond_model = RespondModel()
    save_user_info = False
    if (user_info_form and user_info_form['name']
            == user_info_jwt['name']) or 'admin' in user_info_jwt['roles']:
        if not user_info_form.get('password') or user_info_form.get(
                'password') == '':
            user_info_form['password'] = get_password_from_db(user_info_form)
            save_user_info = user_service.update(user_info_form)
        else:
            save_user_info = update_password(user_info_form)
        respond_model.message = 'success'
        if save_user_info:
            respond_model.token = generate_jwt(user_info_form)
        return respond_model
    respond_model.message = 'error'
    return respond_model
예제 #2
0
 def fun_dec(*args, **kwargs):
     request_model = RequestModel(request)
     user_info = decode_jwt(request_model.token)['user_info']
     if self.roles in user_info.get('roles'):
         respond_model = api_function(*args, **kwargs)
         return respond_model
     else:
         respond_model = RespondModel()
         respond_model.message = 'authorization error'
         return respond_model
def del_settings():
    """
        del libraries settings by user
    :return: respond_model
    """
    request_model = RequestModel(request)
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    respond_model = RespondModel()
    del_libraries_settings(user_info_jwt['name'], request_model.data)
    return respond_model
예제 #4
0
def save_setting():
    """
        save setting
    :return: respond model
    """
    request_model = RequestModel(request)
    respond_model = RespondModel()
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    save_user_setting(user_info_jwt.get('name'), request_model.data)
    return respond_model
def detail():
    """
        return all libraries settings detail
    :return: respond_model
    """
    request_model = RequestModel(request)
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    respond_model = RespondModel()
    respond_model.data = libraries_detail(user_info_jwt['name'], request_model.data.get('libraries'))
    return respond_model
def manual_scan():
    """
        manual scan
    :return: respond model with metaDate
    """
    respond_model = RespondModel()
    request_model = RequestModel(request)
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    meta_data_list = run_manual_scan(request_model.data, user_info_jwt)
    respond_model.data = meta_data_list
    return respond_model
예제 #7
0
def user_info():
    """
        get user info
    :return: respond model
    """
    request_model = RequestModel(request)
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    respond_model = RespondModel()
    respond_model.message = 'success'
    respond_model.data = user_info_jwt
    return respond_model
def user_info():
    """
        get user info
    :return: respond model
    """
    request_model = RequestModel(request)
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    respond_model = RespondModel()
    respond_model.message = 'success'
    if 'admin' in user_info_jwt.get('roles'):
        user_info_jwt['roles'] = 'admin,' + get_all_plugin_name()
    respond_model.data = user_info_jwt
    return respond_model
예제 #9
0
def plugin_authorization(plugin_name):
    """
        check if user have authority to access the plugin that they want to access
    :param plugin_name: the plugin name which user want to access
    :return: Boolean
    """
    request_model = RequestModel(request)
    roles = decode_jwt(request_model.token)['user_info'].get('roles')
    if 'admin' in roles:
        roles = 'admin,' + get_all_plugin_name()
    if plugin_name in roles:
        return True
    else:
        return False
예제 #10
0
def save_token():
    """
        save plugin token
    :return:
    """
    request_model = RequestModel(request)
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    respond_model = RespondModel()
    respond_model.message = 'success'
    token = generate_token(user_info_jwt)
    respond_model.data['token'] = token
    user_info_jwt['token'] = token
    respond_model.token = generate_jwt(user_info_jwt)
    return respond_model
예제 #11
0
def save_setting(plugin_name):
    """
        save user plugin setting
    :param plugin_name: plugin name
    :return: respond_model
    """
    respond_model = RespondModel()
    request_model = RequestModel(request)
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    if not plugin_authorization(plugin_name):
        respond_model.message = 'authorization error'
        return respond_model
    save_plugin_setting(plugin_name, request_model.data, user_info_jwt)
    return respond_model
예제 #12
0
def get_setting():
    """
        get setting
    :return: respond model
    """
    request_model = RequestModel(request)
    respond_model = RespondModel()
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    setting = get_setting_by_username(user_info_jwt.get('name'))
    if setting:
        respond_model.data = setting.get('setting')
    else:
        respond_model.data = {}
    return respond_model
예제 #13
0
def plugin_setting(lang, plugin_name):
    """
        get plugin setting form and user plugin setting
    :param lang: language for i18n
    :param plugin_name: plugin name
    :return: respond_model
    """
    respond_model = RespondModel()
    request_model = RequestModel(request)
    jwt = request_model.token
    user_info_jwt = decode_jwt(jwt)['user_info']
    if not plugin_authorization(plugin_name):
        respond_model.message = 'authorization error'
        return respond_model
    data = {
        'form': get_plugin_setting(plugin_name, lang),
        'userSetting': get_user_plugin_setting(plugin_name, user_info_jwt)
    }
    respond_model.data = data
    return respond_model