# HG changeset patch # User Marcin Kuzminski # Date 2018-01-30 12:52:50 # Node ID a371cd7fd15cd5e3b251853ad02a07f572ac32ef # Parent dc37941f8deaca5da81cb673050436f37a11d9b4 permissions: fix problem with permissions reset to None for cases when user group had same ID as default user. diff --git a/rhodecode/model/validators.py b/rhodecode/model/validators.py --- a/rhodecode/model/validators.py +++ b/rhodecode/model/validators.py @@ -791,20 +791,22 @@ def ValidPerms(localizer, type_='repo'): # get updates of permissions # (read the existing radio button states) default_user_id = User.get_default_user().user_id + for k, update_value in value.iteritems(): if k.startswith('u_perm_') or k.startswith('g_perm_'): - member = k[7:] + obj_type = k[0] + obj_id = k[7:] update_type = {'u': 'user', - 'g': 'users_group'}[k[0]] + 'g': 'users_group'}[obj_type] - if safe_int(member) == default_user_id: + if obj_type == 'u' and safe_int(obj_id) == default_user_id: if str2bool(value.get('repo_private')): # prevent from updating default user permissions # when this repository is marked as private update_value = EMPTY_PERM perm_updates.add( - (member, update_value, update_type)) + (obj_id, update_value, update_type)) value['perm_additions'] = [] # propagated later value['perm_updates'] = list(perm_updates)