graph editing permissions

This commit is contained in:
Laura Klünder 2018-12-09 21:32:43 +01:00
parent 05679e20c7
commit 600900bb58
2 changed files with 11 additions and 7 deletions

View file

@ -206,14 +206,18 @@ class EditorViewSet(EditorViewSetMixin, ViewSet):
all_other_spaces = []
# todo: permissions
graphnodes = request.changeset.wrap_model('GraphNode').objects.all()
graphnodes = graphnodes.filter((Q(space__in=all_other_spaces)) | Q(space__pk=space.pk))
if request.user_permissions.can_access_base_mapdata:
graphnodes = request.changeset.wrap_model('GraphNode').objects.all()
graphnodes = graphnodes.filter((Q(space__in=all_other_spaces)) | Q(space__pk=space.pk))
space_graphnodes = tuple(node for node in graphnodes if node.space_id == space.pk)
space_graphnodes = tuple(node for node in graphnodes if node.space_id == space.pk)
graphedges = request.changeset.wrap_model('GraphEdge').objects.all()
graphedges = graphedges.filter(Q(from_node__in=space_graphnodes) | Q(to_node__in=space_graphnodes))
graphedges = graphedges.select_related('from_node', 'to_node', 'waytype')
graphedges = request.changeset.wrap_model('GraphEdge').objects.all()
graphedges = graphedges.filter(Q(from_node__in=space_graphnodes) | Q(to_node__in=space_graphnodes))
graphedges = graphedges.select_related('from_node', 'to_node', 'waytype')
else:
graphnodes = []
graphedges = []
areas = space.areas.filter(Area.q_for_request(request)).prefetch_related('groups')
for area in areas:

View file

@ -111,7 +111,7 @@ def space_detail(request, level, pk):
'level': space.level,
'level_url': 'editor.spaces.list',
'space': space,
'can_edit_graph': edit_utils.can_access_child_base_mapdata,
'can_edit_graph': request.user_permissions.can_access_base_mapdata,
'child_models': [child_model(request, model_name, kwargs={'space': pk}, parent=space)
for model_name in submodels],