summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit5d82761818925d118537043ccd8dc287a0e41209 (patch)
tree3cf300c71ef8c7cd54b0ba8e3091acd1c1fc362c
parent2a0b5e96a92202c9e16991584bb67e0c97e03edc (diff)
downloadIshtar-5d82761818925d118537043ccd8dc287a0e41209.tar.bz2
Ishtar-5d82761818925d118537043ccd8dc287a0e41209.zip
Reactivate right cache (finger crossed)
-rw-r--r--ishtar_common/menu_base.py4
-rw-r--r--ishtar_common/models.py9
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