respect base_mapdata_access in editor

This commit is contained in:
Laura Klünder 2018-11-20 22:54:29 +01:00
parent bb1bb69d00
commit bf761c1a1c
9 changed files with 89 additions and 29 deletions

View file

@ -39,6 +39,15 @@ class UserPermissions(models.Model):
def get_cache_key(pk):
return 'control:permissions:%d' % pk
@classmethod
def cache_key_for_request(cls):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if self.user_id and self.user.is_superuser:
for field in UserPermissions._meta.get_fields():
if isinstance(field, models.BooleanField):
setattr(self, field.name, True)
@classmethod
def get_for_user(cls, user, force=False) -> 'UserPermissions':
if not user.is_authenticated:
@ -65,5 +74,10 @@ class UserPermissions(models.Model):
cache_key = self.get_cache_key(self.pk)
cache.set(cache_key, self, 900)
@property
def can_access_base_mapdata(self):
return False
return settings.PUBLIC_BASE_MAPDATA or self.base_mapdata_access
get_permissions_for_user_lazy = lazy(UserPermissions.get_for_user, UserPermissions)