diff options
Diffstat (limited to 'ishtar_common/menu_base.py')
| -rw-r--r-- | ishtar_common/menu_base.py | 35 | 
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 | 
