diff rhodecode/model/repos_group.py @ 3827:ff57547c9cf7 beta

Add flag for permission check in _update_permissions function
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 23 Apr 2013 16:07:28 +0200
parents 32f66c839c54
children be2b75779da3
line wrap: on
line diff
--- a/rhodecode/model/repos_group.py	Wed May 08 23:04:24 2013 +0200
+++ b/rhodecode/model/repos_group.py	Tue Apr 23 16:07:28 2013 +0200
@@ -167,9 +167,11 @@
             raise
 
     def _update_permissions(self, repos_group, perms_new=None,
-                            perms_updates=None, recursive=False):
+                            perms_updates=None, recursive=False,
+                            check_perms=True):
         from rhodecode.model.repo import RepoModel
         from rhodecode.lib.auth import HasUserGroupPermissionAny
+
         if not perms_new:
             perms_new = []
         if not perms_updates:
@@ -222,8 +224,8 @@
                 ## set for user group
                 else:
                     #check if we have permissions to alter this usergroup
-                    if HasUserGroupPermissionAny('usergroup.read', 'usergroup.write',
-                                                 'usergroup.admin')(member):
+                    req_perms = ('usergroup.read', 'usergroup.write', 'usergroup.admin')
+                    if not check_perms or HasUserGroupPermissionAny(*req_perms)(member):
                         _set_perm_group(obj, users_group=member, perm=perm)
             # set new permissions
             for member, perm, member_type in perms_new:
@@ -231,8 +233,8 @@
                     _set_perm_user(obj, user=member, perm=perm)
                 else:
                     #check if we have permissions to alter this usergroup
-                    if HasUserGroupPermissionAny('usergroup.read', 'usergroup.write',
-                                                 'usergroup.admin')(member):
+                    req_perms = ('usergroup.read', 'usergroup.write', 'usergroup.admin')
+                    if not check_perms or HasUserGroupPermissionAny(*req_perms)(member):
                         _set_perm_group(obj, users_group=member, perm=perm)
             updates.append(obj)
             #if it's not recursive call