editor edit: 404 if space/section children are accessed by wrong space/section
This commit is contained in:
parent
96f4f97a7f
commit
ff615a6e28
1 changed files with 42 additions and 4 deletions
|
@ -37,23 +37,61 @@ def main_index(request):
|
|||
|
||||
@sidebar_view
|
||||
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', {
|
||||
'sections': Section.objects.all(),
|
||||
'section': pk,
|
||||
'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):
|
||||
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]
|
||||
|
||||
obj = None
|
||||
if pk is not None:
|
||||
# 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
|
||||
raise PermissionDenied
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue