changeset 2078:d4b6c8541bd9 beta

fixes issue when user tried to resubmit same permission into user/user_groups
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 01 Mar 2012 01:01:22 +0200
parents 179604334d98
children 477fe54b8af8
files rhodecode/model/user.py rhodecode/model/users_group.py
diffstat 2 files changed, 19 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/model/user.py	Thu Mar 01 00:30:41 2012 +0200
+++ b/rhodecode/model/user.py	Thu Mar 01 01:01:22 2012 +0200
@@ -531,6 +531,13 @@
         """
         user = self.__get_user(user)
         perm = self.__get_perm(perm)
+        # if this permission is already granted skip it
+        _perm = UserToPerm.query()\
+            .filter(UserToPerm.user == user)\
+            .filter(UserToPerm.permission == perm)\
+            .scalar()
+        if _perm:
+            return
         new = UserToPerm()
         new.user = user
         new.permission = perm
@@ -546,7 +553,9 @@
         user = self.__get_user(user)
         perm = self.__get_perm(perm)
 
-        obj = UserToPerm.query().filter(UserToPerm.user == user)\
-                .filter(UserToPerm.permission == perm).scalar()
+        obj = UserToPerm.query()\
+                .filter(UserToPerm.user == user)\
+                .filter(UserToPerm.permission == perm)\
+                .scalar()
         if obj:
             self.sa.delete(obj)
--- a/rhodecode/model/users_group.py	Thu Mar 01 00:30:41 2012 +0200
+++ b/rhodecode/model/users_group.py	Thu Mar 01 01:01:22 2012 +0200
@@ -172,6 +172,14 @@
 
         users_group = self.__get_users_group(users_group)
 
+        # if this permission is already granted skip it
+        _perm = UsersGroupToPerm.query()\
+            .filter(UsersGroupToPerm.users_group == users_group)\
+            .filter(UsersGroupToPerm.permission == perm)\
+            .scalar()
+        if _perm:
+            return
+
         new = UsersGroupToPerm()
         new.users_group = users_group
         new.permission = perm