editor edit: 404 if space/section children are accessed by wrong space/section

This commit is contained in:
Laura Klünder 2017-05-19 16:08:46 +02:00
parent 96f4f97a7f
commit ff615a6e28

View file

@ -37,23 +37,61 @@ def main_index(request):
@sidebar_view @sidebar_view
def section_detail(request, pk): def section_detail(request, pk):
pk = get_object_or_404(Section, pk=pk) section = get_object_or_404(Section, pk=pk)
return render(request, 'editor/section.html', { return render(request, 'editor/section.html', {
'sections': Section.objects.all(), 'sections': Section.objects.all(),
'section': pk, 'section': section,
'section_url': 'editor.section', 'section_url': 'editor.section',
'section_as_pk': True,
'child_models': [{
'title': Space._meta.verbose_name_plural,
'url': reverse('editor.spaces.list', kwargs={'section': pk}),
'count': section.spaces.count(),
}, {
'title': Door._meta.verbose_name_plural,
'url': reverse('editor.doors.list', kwargs={'section': pk}),
'count': section.doors.count(),
}],
}) })
@sidebar_view @sidebar_view
def edit(request, pk=None, model=None): def space_detail(request, section, pk):
section = get_object_or_404(Section, pk=pk)
return render(request, 'editor/section.html', {
'sections': Section.objects.all(),
'section': section,
'section_url': 'editor.section',
'section_as_pk': True,
'child_models': [{
'title': Space._meta.verbose_name_plural,
'url': reverse('editor.spaces.list', kwargs={'section': pk}),
'count': section.spaces.count(),
}, {
'title': Door._meta.verbose_name_plural,
'url': reverse('editor.doors.list', kwargs={'section': pk}),
'count': section.doors.count(),
}],
})
@sidebar_view
def edit(request, pk=None, model=None, section=None, space=None, explicit_edit=False):
model = EDITOR_FORM_MODELS[model] model = EDITOR_FORM_MODELS[model]
obj = None obj = None
if pk is not None: if pk is not None:
# Edit existing map item # Edit existing map item
obj = get_object_or_404(model, pk=pk) kwargs = {'pk': pk}
if section is not None:
kwargs.update({'section__id': section})
elif space is not None:
kwargs.update({'space__id': space})
obj = get_object_or_404(model, **kwargs)
if False: # todo can access if False: # todo can access
raise PermissionDenied raise PermissionDenied