summaryrefslogtreecommitdiff
path: root/ishtar_common/menu_base.py
diff options
context:
space:
mode:
authorValérie-Emma Leroux <valerie-emma.leroux@iggdrasil.net>2017-04-07 11:40:31 +0200
committerValérie-Emma Leroux <valerie-emma.leroux@iggdrasil.net>2017-04-07 11:40:31 +0200
commit655236dd5d04d6527184a58ef8622e75c73f8a65 (patch)
treef773b80964981c231c892ee5255b94285bc5620a /ishtar_common/menu_base.py
parentdc08e5f643562a6ecf3b208c1e2cd44e5350af3c (diff)
parenta4f1766d2217b1a3bc4d1d17625d9d808eed7416 (diff)
downloadIshtar-655236dd5d04d6527184a58ef8622e75c73f8a65.tar.bz2
Ishtar-655236dd5d04d6527184a58ef8622e75c73f8a65.zip
Merge branch 'master' of git.iggdrasil.net:/srv/git/ishtar
Conflicts: archaeological_operations/templates/ishtar/sheet_operation.html
Diffstat (limited to 'ishtar_common/menu_base.py')
-rw-r--r--ishtar_common/menu_base.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/ishtar_common/menu_base.py b/ishtar_common/menu_base.py
index 0117b375d..c6d02daa5 100644
--- a/ishtar_common/menu_base.py
+++ b/ishtar_common/menu_base.py
@@ -87,18 +87,22 @@ class MenuItem:
return False
if not self.access_controls:
return True
+ if not hasattr(user, 'ishtaruser'):
+ return False
+ # manage by specific idx - person type
+ if user.ishtaruser.has_right(self.idx, session=session):
+ return True
prefix = (self.model._meta.app_label + '.') if self.model else ''
for access_control in self.access_controls:
+ # check by person type
+ if user.ishtaruser.has_right(access_control, session=session):
+ return True
access_control = prefix + access_control
- if hasattr(user, 'ishtaruser') and \
- user.ishtaruser.has_perm(access_control, self.model,
- session=session) or \
+ # check by specific access control
+ if user.ishtaruser.has_perm(access_control, self.model,
+ session=session) or \
access_control in user.get_group_permissions():
return True
- # manage by person type
- if hasattr(user, 'ishtaruser'):
- if user.ishtaruser.has_right(self.idx, session=session):
- return True
return False
def is_available(self, user, obj=None, session=None):