Fix issues related to regerating ssowat conf while hacking permissions...

This commit is contained in:
Alexandre Aubin 2019-10-09 22:11:19 +02:00
parent 88794805eb
commit 2617fd2487

View file

@ -1245,14 +1245,17 @@ class RestoreManager():
# Remove all permission for all app which is still in the LDAP
for permission_name in user_permission_list(ignore_system_perms=True)["permissions"].keys():
permission_delete(permission_name, force=True)
permission_delete(permission_name, force=True, sync_perm=False)
# Restore permission for the app which is installed
for permission_name, permission_infos in old_apps_permission.items():
app_name = permission_name.split(".")[0]
if _is_installed(app_name):
permission_create(permission_name, url=permission_infos["url"], sync_perm=False)
user_permission_update(permission_name, remove="all_users", add=permission_infos["allowed"])
user_permission_update(permission_name, remove="all_users", add=permission_infos["allowed"], sync_perm=False)
permission_sync_to_user()
def _restore_apps(self):
"""Restore all apps targeted"""
@ -1290,7 +1293,7 @@ class RestoreManager():
restore_app_failed -- Raised if the restore bash script failed
"""
from yunohost.user import user_group_list
from yunohost.permission import permission_create, permission_delete, user_permission_list, user_permission_update
from yunohost.permission import permission_create, permission_delete, user_permission_list, user_permission_update, permission_sync_to_user
def copytree(src, dst, symlinks=False, ignore=None):
for item in os.listdir(src):
@ -1362,7 +1365,7 @@ class RestoreManager():
for permission_name, permission_infos in permissions.items():
permission_create(permission_name, url=permission_infos.get("url", None))
permission_create(permission_name, url=permission_infos.get("url", None), sync_perm=False)
if "allowed" not in permission_infos:
logger.warning("'allowed' key corresponding to allowed groups for permission %s not found when restoring app %s … You might have to reconfigure permissions yourself." % (permission_name, app_instance_name))
@ -1370,7 +1373,9 @@ class RestoreManager():
should_be_allowed = [g for g in permission_infos["allowed"] if g in existing_groups]
current_allowed = user_permission_list()["permissions"][permission_name]["allowed"]
if should_be_allowed != current_allowed:
user_permission_update(permission_name, remove=current_allowed, add=should_be_allowed)
user_permission_update(permission_name, remove=current_allowed, add=should_be_allowed, sync_perm=False)
permission_sync_to_user()
os.remove('%s/permissions.yml' % app_settings_new_path)
else: