diff --git a/locales/en.json b/locales/en.json index c370f821e..7a16ebd0c 100644 --- a/locales/en.json +++ b/locales/en.json @@ -274,9 +274,9 @@ "log_dyndns_subscribe": "Subscribe to a YunoHost subdomain '{}'", "log_dyndns_update": "Update the ip associated with your YunoHost subdomain '{}'", "log_letsencrypt_cert_install": "Install Let's encrypt certificate on '{}' domain", - "log_permission_create": "Create permission '{permission}'", - "log_permission_delete": "Delete permission '{permission}'", - "log_permission_urls": "Update urls related to permission '{permission}'", + "log_permission_create": "Create permission '{}'", + "log_permission_delete": "Delete permission '{}'", + "log_permission_urls": "Update urls related to permission '{}'", "log_selfsigned_cert_install": "Install self signed certificate on '{}' domain", "log_letsencrypt_cert_renew": "Renew '{}' Let's encrypt certificate", "log_regen_conf": "Regenerate system configurations '{}'", @@ -286,8 +286,8 @@ "log_user_group_delete": "Delete '{}' group", "log_user_group_update": "Update '{}' group", "log_user_update": "Update information of '{}' user", - "log_user_permission_update": "Update accesses for permission '{permission}'", - "log_user_permission_reset": "Reset permission '{permission}'", + "log_user_permission_update": "Update accesses for permission '{}'", + "log_user_permission_reset": "Reset permission '{}'", "log_tools_maindomain": "Make '{}' as main domain", "log_tools_migrations_migrate_forward": "Migrate forward", "log_tools_postinstall": "Postinstall your YunoHost server", diff --git a/src/yunohost/app.py b/src/yunohost/app.py index f505dd088..b3c36d059 100644 --- a/src/yunohost/app.py +++ b/src/yunohost/app.py @@ -735,11 +735,9 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu if packages.dpkg_is_broken(): raise YunohostError("dpkg_is_broken") - from yunohost.utils.ldap import _get_ldap_interface from yunohost.hook import hook_add, hook_remove, hook_exec, hook_callback from yunohost.log import OperationLogger - from yunohost.permission import permission_create, permission_urls, permission_delete, permission_sync_to_user - ldap = _get_ldap_interface() + from yunohost.permission import user_permission_list, permission_create, permission_urls, permission_delete, permission_sync_to_user # Fetch or extract sources if not os.path.exists(INSTALL_TMP): @@ -976,7 +974,7 @@ def app_remove(operation_logger, app): """ from yunohost.hook import hook_exec, hook_remove, hook_callback - from yunohost.permission import permission_delete, permission_sync_to_user + from yunohost.permission import user_permission_list, permission_delete, permission_sync_to_user if not _is_installed(app): raise YunohostError('app_not_installed', app=app, all_apps=_get_all_installed_apps_id()) diff --git a/src/yunohost/permission.py b/src/yunohost/permission.py index 4d935d3c0..e5035b0ad 100644 --- a/src/yunohost/permission.py +++ b/src/yunohost/permission.py @@ -45,7 +45,7 @@ SYSTEM_PERMS = ["mail", "xmpp", "stfp"] # -def user_permission_list(short=False, full=False, ignore_system_perms=True): +def user_permission_list(short=False, full=False, ignore_system_perms=False): """ List permissions and corresponding accesses """ @@ -273,13 +273,13 @@ def permission_create(operation_logger, permission, urls=None, sync_perm=True): attr_dict = { 'objectClass': ['top', 'permissionYnh', 'posixGroup'], - 'cn': permission, + 'cn': str(permission), 'gidNumber': gid, } # For main permission, we add all users by default if permission.endswith(".main"): - attr_dict['groupPermission'] = 'cn=all_users,ou=groups,dc=yunohost,dc=org' + attr_dict['groupPermission'] = ['cn=all_users,ou=groups,dc=yunohost,dc=org'] if urls: attr_dict['URL'] = [_normalize_url(url) for url in urls] diff --git a/src/yunohost/user.py b/src/yunohost/user.py index ef2a7d523..bb4d6aed2 100644 --- a/src/yunohost/user.py +++ b/src/yunohost/user.py @@ -449,7 +449,7 @@ def user_info(username): if service_status("dovecot")["status"] != "running": logger.warning(m18n.n('mailbox_used_space_dovecot_down')) - elif username not in user_permission_list()["permissions"]["mail.main"]["allowed_users"]: + elif username not in user_permission_list(full=True)["permissions"]["mail.main"]["corresponding_users"]: logger.warning(m18n.n('mailbox_disabled', user=username)) else: cmd = 'doveadm -f flow quota get -u %s' % user['uid'][0]