aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/model/user.py
diff options
context:
space:
mode:
Diffstat (limited to 'rhodecode/model/user.py')
-rw-r--r--rhodecode/model/user.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/rhodecode/model/user.py b/rhodecode/model/user.py
index b87b7e01..8bb0f3b8 100644
--- a/rhodecode/model/user.py
+++ b/rhodecode/model/user.py
@@ -531,6 +531,13 @@ class UserModel(BaseModel):
"""
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 @@ class UserModel(BaseModel):
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)