summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-04-13 12:52:12 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-04-13 12:52:12 +0200
commit1b642d737b55c20ea2b83afbf63d701acd25fc00 (patch)
treeca945f5aae6c049a562be219a3d15dcae2d2a955 /ishtar_common/views.py
parentd5664fbc9754e987f124444f9dcc02e46d20e0ad (diff)
downloadIshtar-1b642d737b55c20ea2b83afbf63d701acd25fc00.tar.bz2
Ishtar-1b642d737b55c20ea2b83afbf63d701acd25fc00.zip
Access control: fix show own item (not *all* items) (refs #3593)
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 3cd00a6a6..f185576ea 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1192,10 +1192,18 @@ def display_item(model, extra_dct=None, show_url=None):
def show_item(model, name, extra_dct=None):
def func(request, pk, **dct):
+ allowed, own = models.check_model_access_control(request, model)
+ if not allowed:
+ return HttpResponse('', content_type="application/xhtml")
+ q = model.objects
+ if own:
+ query_own = model.get_query_owns(request.user)
+ if query_own:
+ q = q.filter(query_own)
try:
- item = model.objects.get(pk=pk)
+ item = q.get(pk=pk)
except ObjectDoesNotExist:
- return HttpResponse(None)
+ return HttpResponse('NOK')
doc_type = 'type' in dct and dct.pop('type')
url_name = u"/".join(reverse('show-' + name, args=['0', '']
).split('/')[:-2]) + u"/"