fix can_create in editor list (and some refactoring)

This commit is contained in:
Laura Klünder 2018-12-09 20:34:06 +01:00
parent 200099e9de
commit 92dafeb370
2 changed files with 51 additions and 6 deletions

45
src/c3nav/editor/utils.py Normal file
View file

@ -0,0 +1,45 @@
class DefaultEditUtils:
def __init__(self, request):
self.request = request
@property
def can_access_child_base_mapdata(self):
return self.request.user_permissions.can_access_base_mapdata
@property
def can_create(self):
return self.can_access_child_base_mapdata
@property
def _geometry_url(self):
return None
@property
def geometry_url(self):
return self._geometry_url if self.can_access_child_base_mapdata else None
class LevelChildEditUtils(DefaultEditUtils):
def __init__(self, level, request):
super().__init__(request)
self.level = level
@property
def _geometry_url(self):
return '/api/editor/geometries/?level=' + str(self.level.primary_level_pk)
class SpaceChildEditUtils(DefaultEditUtils):
def __init__(self, space, request):
super().__init__(request)
self.space = space
@property
def can_access_child_base_mapdata(self):
return (self.request.user_permissions.can_access_base_mapdata or
self.space.base_mapdata_accessible or
self.space.pk in self.request.user_space_access)
@property
def _geometry_url(self):
return '/api/editor/geometries/?space='+str(self.space.pk)