diff --git a/locales/en.json b/locales/en.json index 6f9d28a40..d3bdeed04 100644 --- a/locales/en.json +++ b/locales/en.json @@ -218,7 +218,7 @@ "group_creation_failed": "Group creation failed for group '{group}'", "group_deleted": "Group '{group}' deleted", "group_deletion_failed": "Group '{group} 'deletion failed", - "group_deletion_not_allowed": "You are not allowed to remove the main group of the user {user:s}", + "group_deletion_not_allowed": "The group {group:s} cannot be deleted manually.", "group_info_failed": "Group info failed", "group_unknown": "Group {group:s} unknown", "group_updated": "Group '{group}' updated", diff --git a/src/yunohost/user.py b/src/yunohost/user.py index 3e818f7ea..d6981ed36 100644 --- a/src/yunohost/user.py +++ b/src/yunohost/user.py @@ -594,11 +594,9 @@ 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, fields=['uid'])['users']): - raise YunohostError('group_deletion_not_allowed', user=groupname) + forbidden_groups = ["all_users", "admins"] + user_list(auth, fields=['uid'])['users'].keys() + if not force and groupname in forbidden_groups: + raise YunohostError('group_deletion_not_allowed', group=groupname) operation_logger.start() if not auth.remove('cn=%s,ou=groups' % groupname): @@ -640,7 +638,7 @@ def user_group_update(operation_logger, auth, groupname, add_user=None, remove_u else: group['member'] = [] - existing_users = user_list(auth, fields=['uid'])['users'] + existing_users = user_list(auth, fields=['uid'])['users'].keys() if add_user: if not isinstance(add_user, list):