diff --git a/src/yunohost/app.py b/src/yunohost/app.py index 7ada46d0c..414035e77 100644 --- a/src/yunohost/app.py +++ b/src/yunohost/app.py @@ -324,9 +324,9 @@ def app_map(app=None, raw=False, user=None): app, ] else: - apps = os.listdir(APPS_SETTING_PATH) + apps = _installed_apps() - permissions = user_permission_list(full=True, absolute_urls=True)["permissions"] + permissions = user_permission_list(full=True, absolute_urls=True, apps=apps)["permissions"] for app_id in apps: app_settings = _get_app_settings(app_id) if not app_settings: @@ -1096,9 +1096,8 @@ def app_install( ) # Remove all permission in LDAP - for permission_name in user_permission_list()["permissions"].keys(): - if permission_name.startswith(app_instance_name + "."): - permission_delete(permission_name, force=True, sync_perm=False) + for permission_name in user_permission_list(apps=[app_instance_name])["permissions"].keys(): + permission_delete(permission_name, force=True, sync_perm=False) if remove_retcode != 0: msg = m18n.n("app_not_properly_removed", app=app_instance_name) diff --git a/src/yunohost/backup.py b/src/yunohost/backup.py index 5c83f6651..85487d07f 100644 --- a/src/yunohost/backup.py +++ b/src/yunohost/backup.py @@ -726,11 +726,10 @@ class BackupManager: # backup permissions logger.debug(m18n.n("backup_permission", app=app)) - permissions = user_permission_list(full=True)["permissions"] + permissions = user_permission_list(full=True, apps=[app])["permissions"] this_app_permissions = { name: infos for name, infos in permissions.items() - if name.startswith(app + ".") } write_to_yaml("%s/permissions.yml" % settings_dir, this_app_permissions) @@ -1547,9 +1546,8 @@ class RestoreManager: shutil.rmtree(app_settings_new_path, ignore_errors=True) # Remove all permission in LDAP for this app - for permission_name in user_permission_list()["permissions"].keys(): - if permission_name.startswith(app_instance_name + "."): - permission_delete(permission_name, force=True) + for permission_name in user_permission_list(apps=[app_instance_name])["permissions"].keys(): + permission_delete(permission_name, force=True) # TODO Cleaning app hooks