From ad3d8786d6d1fa94b5ce16e9434678890501a50b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josu=C3=A9=20Tille?= Date: Sat, 15 Dec 2018 20:27:22 +0100 Subject: [PATCH] Change MoulinetteError to YunohostError --- src/yunohost/app.py | 2 +- .../0009_setup_group_permission.py | 6 +-- src/yunohost/permission.py | 37 +++++++++---------- src/yunohost/user.py | 26 ++++++------- 4 files changed, 34 insertions(+), 37 deletions(-) diff --git a/src/yunohost/app.py b/src/yunohost/app.py index f9b7191c0..94f6680ce 100644 --- a/src/yunohost/app.py +++ b/src/yunohost/app.py @@ -1088,7 +1088,7 @@ def app_makedefault(operation_logger, auth, app, domain=None): operation_logger.start() if '/' in app_map(auth, raw=True)[domain]: raise YunohostError('app_make_default_location_already_used', app=app, domain=app_domain, - other_app=app_map(auth, raw=True)[domain]["/"]["id"])) + other_app=app_map(auth, raw=True)[domain]["/"]["id"]) try: with open('/etc/ssowat/conf.json.persistent') as json_conf: diff --git a/src/yunohost/data_migrations/0009_setup_group_permission.py b/src/yunohost/data_migrations/0009_setup_group_permission.py index e08f79724..173a96709 100644 --- a/src/yunohost/data_migrations/0009_setup_group_permission.py +++ b/src/yunohost/data_migrations/0009_setup_group_permission.py @@ -1,8 +1,8 @@ import yaml -import errno from moulinette import m18n -from moulinette.core import MoulinetteError, init_authenticator +from moulinette.core import init_authenticator +from yunohost.utils.error import YunohostError from moulinette.utils.log import getActionLogger from yunohost.tools import Migration @@ -39,7 +39,7 @@ def migrate_LDAP_db(auth): for rdn, attr_dict in ldap_map['depends_children'].items(): auth.add(rdn, attr_dict) except Exception as e: - raise MoulinetteError(errno.EINVAL, m18n.n(("LDAP_update_failled"))) + raise YunohostError("LDAP_update_failled") logger.info(m18n.n("migration_0009_create_group")) diff --git a/src/yunohost/permission.py b/src/yunohost/permission.py index 0cf77745a..b7f2b9949 100644 --- a/src/yunohost/permission.py +++ b/src/yunohost/permission.py @@ -24,13 +24,12 @@ Manage permissions """ -import errno import grp import random from moulinette import m18n -from moulinette.core import MoulinetteError from moulinette.utils.log import getActionLogger +from yunohost.utils.error import YunohostError from yunohost.user import user_list, user_group_list from yunohost.log import is_unit_operation @@ -163,23 +162,23 @@ def user_permission_update(operation_logger, auth, app=[], permission=None, add_ # Validate that the group exist for g in add_group: if not g in user_group_list(auth, ['cn'])['groups']: - raise MoulinetteError(errno.EINVAL, m18n.n('group_unknown', group=g)) + raise YunohostError('group_unknown', group=g) for u in add_username: if not u in user_list(auth, ['uid'])['users']: - raise MoulinetteError(errno.EINVAL, m18n.n('user_unknown', user=u)) + raise YunohostError('user_unknown', user=u) for g in del_group: if not g in user_group_list(auth, ['cn'])['groups']: - raise MoulinetteError(errno.EINVAL, m18n.n('group_unknown', group=g)) + raise YunohostError('group_unknown', group=g) for u in del_username: if not u in user_list(auth, ['uid'])['users']: - raise MoulinetteError(errno.EINVAL, m18n.n('user_unknown', user=u)) + raise YunohostError('user_unknown', user=u) # Merge user and group (note that we consider all user as a group) add_group.extend(add_username) del_group.extend(del_username) if 'all_users' in add_group or 'all_users' in del_group: - raise MoulinetteError(errno.EINVAL, m18n.n('edit_permission_with_group_all_users_not_allowed')) + raise YunohostError('edit_permission_with_group_all_users_not_allowed') # Populate permission informations permission_attrs = [ @@ -196,14 +195,14 @@ def user_permission_update(operation_logger, auth, app=[], permission=None, add_ for per in permission: permission_name = per + '.' + a if not permission_name in result: - raise MoulinetteError(errno.EINVAL, m18n.n('permission_not_found', permission=per, app=a)) + raise YunohostError('permission_not_found', permission=per, app=a) new_per_dict[permission_name] = set() if 'groupPermission' in result[permission_name]: new_per_dict[permission_name] = set(result[permission_name]['groupPermission']) for g in del_group: if 'cn=all_users,ou=groups,dc=yunohost,dc=org' in new_per_dict[permission_name]: - raise MoulinetteError(errno.EINVAL, m18n.n('need_define_permission_before')) + raise YunohostError('need_define_permission_before') group_name = 'cn=' + g + ',ou=groups,dc=yunohost,dc=org' if not group_name in new_per_dict[permission_name]: logger.warning(m18n.n('group_alread_disallowed', permission=per, app=a, group=g)) @@ -229,7 +228,7 @@ def user_permission_update(operation_logger, auth, app=[], permission=None, add_ p = per.split('.') logger.success(m18n.n('permission_updated', permission=p[0], app=p[1])) else: - raise MoulinetteError(169, m18n.n('permission_update_failed')) + raise YunohostError('permission_update_failed') if sync_perm: permission_sync_to_user(auth) @@ -290,14 +289,14 @@ def user_permission_clear(operation_logger, auth, app=[], permission=None, sync_ for per in permission: permission_name = per + '.' + a if not permission_name in result: - raise MoulinetteError(errno.EINVAL, m18n.n('permission_not_found', permission=per, app=a)) + raise YunohostError('permission_not_found', permission=per, app=a) if 'groupPermission' in result[permission_name] and 'cn=all_users,ou=groups,dc=yunohost,dc=org' in result[permission_name]['groupPermission']: logger.warning(m18n.n('permission_already_clear', permission=per, app=a)) continue if auth.update('cn=%s,ou=permission' % permission_name, default_permission): logger.success(m18n.n('permission_updated', permission=per, app=a)) else: - raise MoulinetteError(169, m18n.n('permission_update_failed')) + raise YunohostError('permission_update_failed') permission_sync_to_user(auth) @@ -332,7 +331,7 @@ def permission_add(operation_logger, auth, app, permission, url=None, default_al 'cn': permission_name }, base_dn='ou=permission,dc=yunohost,dc=org') if conflict: - raise MoulinetteError(errno.EEXIST, m18n.n('permission_already_exist', permission=permission, app=app)) + raise YunohostError('permission_already_exist', permission=permission, app=app) # Get random GID all_gid = {x.gr_gid for x in grp.getgrall()} @@ -365,7 +364,7 @@ def permission_add(operation_logger, auth, app, permission, url=None, default_al logger.success(m18n.n('permission_created', permission=permission, app=app)) return user_permission_list(auth, app, permission) - raise MoulinetteError(169, m18n.n('premission_creation_failled')) + raise YunohostError('premission_creation_failled') @is_unit_operation(['permission','app']) @@ -388,7 +387,7 @@ def permission_update(operation_logger, auth, app, permission, add_url=None, rem result = auth.search(base='ou=permission,dc=yunohost,dc=org', filter='cn=' + permission_name, attrs=['URL']) if not result: - raise MoulinetteError(errno.EINVAL, m18n.n('permission_not_found', permission=permission, app=app)) + raise YunohostError('permission_not_found', permission=permission, app=app) permission_obj = result[0] if not 'URL' in permission_obj: @@ -420,7 +419,7 @@ def permission_update(operation_logger, auth, app, permission, add_url=None, rem logger.success(m18n.n('permission_updated', permission=permission, app=app)) return user_permission_list(auth, app, permission) - raise MoulinetteError(169, m18n.n('premission_update_failled')) + raise YunohostError('premission_update_failled') @is_unit_operation(['permission','app']) @@ -435,11 +434,11 @@ def permission_remove(operation_logger, auth, app, permission, force=False, sync """ if permission == "main" and not force: - raise MoulinetteError(errno.EPERM, m18n.n('remove_main_permission_not_allowed')) + raise YunohostError('remove_main_permission_not_allowed') operation_logger.start() if not auth.remove('cn=%s,ou=permission' % str(permission + '.' + app)): - raise MoulinetteError(169, m18n.n('permission_deletion_failed', permission=permission, app=app)) + raise YunohostError('permission_deletion_failed', permission=permission, app=app) if sync_perm: permission_sync_to_user(auth) logger.success(m18n.n('permission_deleted', permission=permission, app=app)) @@ -487,7 +486,7 @@ def permission_sync_to_user(auth): uid_val = [v.split("=")[1].split(",")[0] for v in val] inheritPermission = {'inheritPermission': val, 'memberUid': uid_val} if not auth.update('cn=%s,ou=permission' % per['cn'][0], inheritPermission): - raise MoulinetteError(169, m18n.n('permission_update_failed')) + raise YunohostError('permission_update_failed') logger.success(m18n.n('permission_generated')) app_ssowatconf(auth) diff --git a/src/yunohost/user.py b/src/yunohost/user.py index 22b2e1b75..b800c9b0e 100644 --- a/src/yunohost/user.py +++ b/src/yunohost/user.py @@ -496,8 +496,7 @@ def user_group_list(auth, fields=None): if attr in keys: attrs.append(attr) else: - raise MoulinetteError(errno.EINVAL, - m18n.n('field_invalid', attr)) + raise YunohostError('field_invalid', attr) else: attrs = ['cn', 'member'] @@ -551,12 +550,12 @@ def user_group_add(operation_logger, auth, groupname,gid=None, sync_perm=True): 'cn': groupname }, base_dn='ou=groups,dc=yunohost,dc=org') if conflict: - raise MoulinetteError(errno.EEXIST, m18n.n('group_name_already_exist', name=groupname)) + raise YunohostError('group_name_already_exist', name=groupname) # Validate uniqueness of groupname in system group all_existing_groupnames = {x.gr_name for x in grp.getgrall()} if groupname in all_existing_groupnames: - raise MoulinetteError(errno.EEXIST, m18n.n('system_groupname_exists')) + raise YunohostError('system_groupname_exists') if not gid: # Get random GID @@ -579,7 +578,7 @@ def user_group_add(operation_logger, auth, groupname,gid=None, sync_perm=True): permission_sync_to_user(auth) return {'name': groupname} - raise MoulinetteError(169, m18n.n('group_creation_failed')) + raise YunohostError('group_creation_failed') @is_unit_operation([('groupname', 'user')]) @@ -594,11 +593,11 @@ def user_group_delete(operation_logger, auth, groupname, force=False, sync_perm= from yunohost.permission import permission_sync_to_user if not force and (groupname == 'all_users' or groupname == 'admins' or groupname in user_list(auth, ['uid'])['users']): - raise MoulinetteError(errno.EPERM, m18n.n('group_deletion_not_allowed', user=groupname)) + raise YunohostError('group_deletion_not_allowed', user=groupname) operation_logger.start() if not auth.remove('cn=%s,ou=groups' % groupname): - raise MoulinetteError(169, m18n.n('group_deletion_failed')) + raise YunohostError('group_deletion_failed') logger.success(m18n.n('group_deleted')) if sync_perm: @@ -622,13 +621,13 @@ def user_group_update(operation_logger, auth, groupname, add_user=None, remove_u attrs_to_fetch = ['member'] if (groupname == 'all_users' or groupname == 'admins') and not force: - raise MoulinetteError(errno.EINVAL, m18n.n('edit_group_not_allowed', group=groupname)) + raise YunohostError('edit_group_not_allowed', group=groupname) # Populate group informations result = auth.search(base='ou=groups,dc=yunohost,dc=org', filter='cn=' + groupname, attrs=attrs_to_fetch) if not result: - raise MoulinetteError(errno.EINVAL, m18n.n('group_unknown', group=groupname)) + raise YunohostError('group_unknown', group=groupname) group = result[0] new_group_list = {'member': set(), 'memberUid': set()} @@ -644,7 +643,7 @@ def user_group_update(operation_logger, auth, groupname, add_user=None, remove_u add_user = [add_user] for user in add_user: if not user in user_l: - raise MoulinetteError(errno.EINVAL, m18n.n('user_unknown', user=user)) + raise YunohostError('user_unknown', user=user) userDN = "uid=" + user + ",ou=users,dc=yunohost,dc=org" if userDN in group['member']: logger.warning(m18n.n('user_alread_in_group', user=user, group=groupname)) @@ -656,8 +655,7 @@ def user_group_update(operation_logger, auth, groupname, add_user=None, remove_u for user in remove_user: userDN = "uid=" + user + ",ou=users,dc=yunohost,dc=org" if user == groupname: - raise MoulinetteError(errno.EINVAL, - m18n.n('remove_user_of_group_not_allowed', user=user, group=groupname)) + raise YunohostError('remove_user_of_group_not_allowed', user=user, group=groupname) if 'member' in group and userDN in group['member']: new_group_list['member'].remove(userDN) else: @@ -677,7 +675,7 @@ def user_group_update(operation_logger, auth, groupname, add_user=None, remove_u if new_group_list['member'] != set(group['member']): if not auth.update('cn=%s,ou=groups' % groupname, new_group_list): - raise MoulinetteError(169, m18n.n('group_update_failed')) + raise YunohostError('group_update_failed') logger.success(m18n.n('group_updated')) if sync_perm: @@ -699,7 +697,7 @@ def user_group_info(auth, groupname): result = auth.search('ou=groups,dc=yunohost,dc=org', "cn=" + groupname, group_attrs) if not result: - raise MoulinetteError(errno.EINVAL, m18n.n('group_unknown', group=groupname)) + raise YunohostError('group_unknown', group=groupname) else: group = result[0]