diff rhodecode/model/permission.py @ 3052:d3200c58764e beta

implemented #663 Admin/permission: specify default repogroup perms - added migration that adds new default permission for groups - merged with patch from Vincent Caron
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 30 Nov 2012 00:59:49 +0100
parents 091e99b29fd4
children a5f0bc867edc 9e76876a0690
line wrap: on
line diff
--- a/rhodecode/model/permission.py	Fri Nov 30 00:19:20 2012 +0100
+++ b/rhodecode/model/permission.py	Fri Nov 30 00:59:49 2012 +0100
@@ -78,16 +78,21 @@
         u2p = self.sa.query(UserToPerm).filter(UserToPerm.user ==
                                                perm_user).all()
         if len(u2p) != len(User.DEFAULT_PERMISSIONS):
-            raise Exception('Defined: %s should be 4  permissions for default'
+            raise Exception('Defined: %s should be %s  permissions for default'
                             ' user. This should not happen please verify'
-                            ' your database' % len(u2p))
+                            ' your database' % (len(u2p), len(User.DEFAULT_PERMISSIONS)))
 
         try:
             # stage 1 change defaults
             for p in u2p:
                 if p.permission.permission_name.startswith('repository.'):
                     p.permission = self.get_permission_by_name(
-                                       form_result['default_perm'])
+                                       form_result['default_repo_perm'])
+                    self.sa.add(p)
+
+                elif p.permission.permission_name.startswith('group.'):
+                    p.permission = self.get_permission_by_name(
+                                       form_result['default_group_perm'])
                     self.sa.add(p)
 
                 elif p.permission.permission_name.startswith('hg.register.'):
@@ -105,9 +110,9 @@
                                         form_result['default_fork'])
                     self.sa.add(p)
 
-            _def_name = form_result['default_perm'].split('repository.')[-1]
             #stage 2 update all default permissions for repos if checked
-            if form_result['overwrite_default'] == True:
+            if form_result['overwrite_default_repo'] == True:
+                _def_name = form_result['default_repo_perm'].split('repository.')[-1]
                 _def = self.get_permission_by_name('repository.' + _def_name)
                 # repos
                 for r2p in self.sa.query(UserRepoToPerm)\
@@ -115,6 +120,9 @@
                                .all():
                     r2p.permission = _def
                     self.sa.add(r2p)
+
+            if form_result['overwrite_default_group'] == True:
+                _def_name = form_result['default_group_perm'].split('group.')[-1]
                 # groups
                 _def = self.get_permission_by_name('group.' + _def_name)
                 for g2p in self.sa.query(UserRepoGroupToPerm)\