Clean Permission if app restoration fail

This commit is contained in:
Josué Tille 2019-05-28 20:24:37 +02:00
parent f839ec5153
commit d97e917ef9
No known key found for this signature in database
GPG key ID: D5E068C6DFA8681D

View file

@ -1298,6 +1298,7 @@ class RestoreManager():
"""
from moulinette.utils.filesystem import read_ldif
from yunohost.user import user_group_list
from yunohost.permission import permission_remove
def copytree(src, dst, symlinks=False, ignore=None):
for item in os.listdir(src):
@ -1427,6 +1428,13 @@ class RestoreManager():
# Cleaning app directory
shutil.rmtree(app_settings_new_path, ignore_errors=True)
# Remove all permission in LDAP
result = auth.search(base='ou=permission,dc=yunohost,dc=org',
filter='(&(objectclass=permissionYnh)(cn=*.%s))' % app_instance_name, attrs=['cn'])
permission_list = [p['cn'][0] for p in result]
for l in permission_list:
permission_remove(auth, app_instance_name, l.split('.')[0], force=True)
# TODO Cleaning app hooks
else:
self.targets.set_result("apps", app_instance_name, "Success")