diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-09 17:21:35 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-09 17:21:35 +0200 | 
| commit | 510413f056de9a82c7cd75c3cca48d617245024d (patch) | |
| tree | 3cf300c71ef8c7cd54b0ba8e3091acd1c1fc362c | |
| parent | 5e71ed7eb01b0a4e8625b5f76397582aef1ef4a0 (diff) | |
| download | Ishtar-510413f056de9a82c7cd75c3cca48d617245024d.tar.bz2 Ishtar-510413f056de9a82c7cd75c3cca48d617245024d.zip | |
Reactivate right cache (finger crossed)
| -rw-r--r-- | ishtar_common/menu_base.py | 4 | ||||
| -rw-r--r-- | ishtar_common/models.py | 9 | 
2 files changed, 7 insertions, 6 deletions
| diff --git a/ishtar_common/menu_base.py b/ishtar_common/menu_base.py index 7c309d376..64dfbae95 100644 --- a/ishtar_common/menu_base.py +++ b/ishtar_common/menu_base.py @@ -89,9 +89,9 @@ class MenuItem:          for access_control in self.access_controls:              access_control = prefix + access_control              if hasattr(user, 'ishtaruser') and \ -                user.ishtaruser.has_perm(access_control, self.model) or\ +                user.ishtaruser.has_perm(access_control, self.model, +                                         session=session) or \                 access_control in user.get_group_permissions(): -                #                         session=session) or \                  return True          # manage by person type          if hasattr(user, 'ishtaruser'): diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 29dedd113..e4a72eab7 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2414,10 +2414,10 @@ class Person(Address, Merge, OwnPerms, ValueGetter):                  bool(self.person_types.filter(                       groups__permissions__codename=right_name).count()) or \                  bool(self.ishtaruser.filter( -                     groups__permissions__codename__in=right_name +                     groups__permissions__codename__in=[right_name]                       ).count()) or\                  bool(self.ishtaruser.filter( -                     user_permissions__codename__in=right_name).count()) +                     user_permissions__codename__in=[right_name]).count())          # or self.person_types.filter(wizard__url_name=right_name).count())          if session:              cache.set(cache_key, res, settings.CACHE_SMALLTIMEOUT) @@ -2514,8 +2514,9 @@ class IshtarUser(User):      def has_perm(self, perm, model=None, session=None, obj=None):          if not session:              return super(IshtarUser, self).has_perm(perm, model) -        cache_key = 'usersession-{}-{}'.format(session.session_key, perm, -                                               model or 'no') +        cache_key = 'usersession-{}-{}-{}-{}'.format( +            session.session_key, perm, model.__name__ if model else 'no', +            obj.pk if obj else 'no')          res = cache.get(cache_key)          if res in (True, False):              return res | 
