diff rhodecode/model/user.py @ 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 b63adad7c4af
children ecd59c28f432 8ecfed1d8f8b
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)