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,poweruser,' + get_all_plugin_name()
    elif 'poweruser' in user_info_jwt.get('roles'):
        user_info_jwt['roles'] = 'poweruser,' + get_all_plugin_name()
    respond_model.data = user_info_jwt
    return respond_model
Beispiel #2
0
def libraries_detail(user_name, libraries):
    """
        get user libraries settings
    :param libraries: search libraries
    :param user_name: user name
    :return: list settings
    """
    collection = get_collection('user_libraries')
    query = {"user_name": user_name, "libraries": libraries}
    settings = collection.find_one(query)
    all_plugin = get_all_plugin_name()

    if settings:
        result = {
            'libraries':
            settings.get('libraries'),
            'active':
            settings.get('active'),
            'disable':
            list(
                set(all_plugin.split(',')).difference(
                    set(settings.get('active'))))
        }
        return result
    return {'libraries': '', 'active': [], 'disable': all_plugin.split(',')}
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 'poweruser' in roles:
        roles = get_all_plugin_name()
    if plugin_name in roles:
        return True
    else:
        return False
def install_plugin_require():
    """
        use pip to install packages stated in plugins' requirements.json
    :return:
    """
    plugins_name = get_all_plugin_name()
    if plugins_name == '':
        return
    for plugin in plugins_name.split(','):
        config = get_config('app/plugins/%s/requirements.json' % plugin)
        if config:
            requirements = config.get('requirements')
            if requirements:
                for requirement in requirements:
                    install_package(requirement.get("name"),
                                    requirement.get("version"))
def user_sign_up(user_info):
    """
        user sign up
    :param user_info: dict user info
    :return:
    """
    collection = get_collection("user")
    if collection.find_one({'name': user_info.get('name')}):
        return False
    collection.insert({
        'name':
        user_info.get('name'),
        'password':
        get_password(user_info.get('name'), user_info.get('password')),
        'email':
        user_info.get('email'),
        'roles':
        get_all_plugin_name()
    })
    return True
Beispiel #6
0
def get_libraries_settings(user_name):
    """
        get user libraries settings
    :param user_name: user name
    :return: list settings
    """
    collection = get_collection('user_libraries')
    query = {"user_name": user_name}
    settings = collection.find(query)
    plugins_active = get_all_plugin_name()
    result = []
    for setting in settings:
        if setting.get('active'):
            data_plugin = ''
            for plugin in setting['active']:
                if plugin in plugins_active:
                    data_plugin += ',' + plugin
            setting['active'] = data_plugin
        setting['id'] = str(setting['_id'])
        setting.pop('_id')
        setting['active'] = setting['active'][1:]
        result.append(setting)
    return result