Skip to content
Snippets Groups Projects
Commit fda9b049 authored by Jean-Baptiste's avatar Jean-Baptiste
Browse files

syntax: clean up

parent 110f8fcb
No related branches found
No related tags found
1 merge request!173Improve serializer cache
Pipeline #8290 passed
...@@ -38,18 +38,15 @@ class LDPPermissions(DjangoObjectPermissions): ...@@ -38,18 +38,15 @@ class LDPPermissions(DjangoObjectPermissions):
Filter user permissions for a model class Filter user permissions for a model class
""" """
# this may be a permission for the model class, or an instance
self.refresh_cache() self.refresh_cache()
# this may be a permission for the model class, or an instance
if isinstance(obj_or_model, ModelBase): if isinstance(obj_or_model, ModelBase):
model = obj_or_model model = obj_or_model
else: else:
obj = obj_or_model obj = obj_or_model
model = obj_or_model.__class__ model = obj_or_model.__class__
model_name = model._meta.model_name perms_cache_key = self.cache_key(model, obj, user)
user_key = 'None' if user is None else user.id
obj_key = 'None' if obj is None else obj.id
perms_cache_key = 'User{}{}{}'.format(user_key, model_name, obj_key)
if self.with_cache and perms_cache_key in self.perms_cache: if self.with_cache and perms_cache_key in self.perms_cache:
return self.perms_cache[perms_cache_key] return self.perms_cache[perms_cache_key]
...@@ -95,7 +92,13 @@ class LDPPermissions(DjangoObjectPermissions): ...@@ -95,7 +92,13 @@ class LDPPermissions(DjangoObjectPermissions):
self.perms_cache[perms_cache_key] = list(perms) self.perms_cache[perms_cache_key] = list(perms)
return self.perms_cache[perms_cache_key] return self.perms_cache[perms_cache_key]
# return list(perms)
def cache_key(self, model, obj, user):
model_name = model._meta.model_name
user_key = 'None' if user is None else user.id
obj_key = 'None' if obj is None else obj.id
perms_cache_key = 'User{}{}{}'.format(user_key, model_name, obj_key)
return perms_cache_key
def filter_user_perms(self, context, obj_or_model, permissions): def filter_user_perms(self, context, obj_or_model, permissions):
# Only used on Model.get_permissions to translate permissions to LDP # Only used on Model.get_permissions to translate permissions to LDP
......
...@@ -18,6 +18,7 @@ class TestPerformanceGET(APITestCase): ...@@ -18,6 +18,7 @@ class TestPerformanceGET(APITestCase):
result_line = [] result_line = []
withAuth = True withAuth = True
withPermsCache = True withPermsCache = True
# fixtures = ['test_ten_1000.json',]
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment