changeset 3735:8a40028eaf73 beta

fixed overwrite default user group permission flag
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 10 Apr 2013 18:03:11 +0200
parents a8f520540ab0
children 87e6960e250b
files rhodecode/model/forms.py rhodecode/model/permission.py
diffstat 2 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/model/forms.py	Wed Apr 10 14:33:04 2013 +0200
+++ b/rhodecode/model/forms.py	Wed Apr 10 18:03:11 2013 +0200
@@ -319,6 +319,7 @@
         filter_extra_fields = True
         overwrite_default_repo = v.StringBoolean(if_missing=False)
         overwrite_default_group = v.StringBoolean(if_missing=False)
+        overwrite_default_user_group = v.StringBoolean(if_missing=False)
         anonymous = v.StringBoolean(if_missing=False)
         default_repo_perm = v.OneOf(repo_perms_choices)
         default_group_perm = v.OneOf(group_perms_choices)
--- a/rhodecode/model/permission.py	Wed Apr 10 14:33:04 2013 +0200
+++ b/rhodecode/model/permission.py	Wed Apr 10 18:03:11 2013 +0200
@@ -30,7 +30,7 @@
 
 from rhodecode.model import BaseModel
 from rhodecode.model.db import User, Permission, UserToPerm, UserRepoToPerm,\
-    UserRepoGroupToPerm
+    UserRepoGroupToPerm, UserUserGroupToPerm
 from rhodecode.lib.utils2 import str2bool
 
 log = logging.getLogger(__name__)
@@ -145,6 +145,16 @@
                     g2p.permission = _def
                     self.sa.add(g2p)
 
+            if form_result['overwrite_default_user_group'] == True:
+                _def_name = form_result['default_user_group_perm'].split('usergroup.')[-1]
+                # groups
+                _def = Permission.get_by_key('usergroup.' + _def_name)
+                for g2p in self.sa.query(UserUserGroupToPerm)\
+                               .filter(UserUserGroupToPerm.user == perm_user)\
+                               .all():
+                    g2p.permission = _def
+                    self.sa.add(g2p)
+
             self.sa.commit()
         except (DatabaseError,):
             log.error(traceback.format_exc())