summaryrefslogtreecommitdiff
path: root/ishtar_common/menu_base.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/menu_base.py')
-rw-r--r--ishtar_common/menu_base.py35
1 files changed, 10 insertions, 25 deletions
diff --git a/ishtar_common/menu_base.py b/ishtar_common/menu_base.py
index d18964c40..d88c5c7c9 100644
--- a/ishtar_common/menu_base.py
+++ b/ishtar_common/menu_base.py
@@ -25,9 +25,7 @@ class SectionItem:
css=''):
self.idx = idx
self._label = label
- if not childs:
- childs = []
- self.childs = childs
+ self.childs = childs or []
self.available = False
self.items = {}
self.profile_restriction = profile_restriction
@@ -76,12 +74,12 @@ class SectionItem:
class MenuItem:
- def __init__(self, idx, label, model=None, access_controls=[],
+ def __init__(self, idx, label, model=None, access_controls=None,
profile_restriction=None, css=''):
self.idx = idx
self.label = label
self.model = model
- self.access_controls = access_controls
+ self.access_controls = access_controls or []
self.available = False
self.profile_restriction = profile_restriction
self.css = css
@@ -102,19 +100,10 @@ class MenuItem:
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
- # check by specific access control
- if user.ishtaruser.has_perm(access_control, self.model,
- session=session) or \
- access_control in user.get_group_permissions():
+ # check by profile
+ if user.ishtaruser.person.has_right(access_control,
+ session=session):
return True
return False
@@ -123,15 +112,11 @@ class MenuItem:
return False
if not self.access_controls:
return True
- prefix = (self.model._meta.app_label + '.') if self.model else ''
+ if not hasattr(user, 'ishtaruser'):
+ return False
for access_control in self.access_controls:
- access_control = prefix + access_control
- if user.has_perm(access_control, self.model, obj=obj):
- # session=session):
- return True
- # manage by person type
- if hasattr(user, 'ishtaruser'):
- if user.ishtaruser.has_right(self.idx, session=session):
+ if user.ishtaruser.person.has_right(
+ access_control, obj=obj, session=session):
return True
return False