fix can_create in editor list (and some refactoring)
This commit is contained in:
parent
200099e9de
commit
92dafeb370
2 changed files with 51 additions and 6 deletions
45
src/c3nav/editor/utils.py
Normal file
45
src/c3nav/editor/utils.py
Normal 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)
|
Loading…
Add table
Add a link
Reference in a new issue