summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 7440e0170..9a20fadd5 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -217,17 +217,22 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
if specific_perms and perm not in specific_perms:
continue
if request.user.has_perm(perm) \
- or request.user.ishtaruser.has_right(perm):
+ or (request.user.is_authenticated()
+ and request.user.ishtaruser.has_right(perm)):
allowed = True
if "_own_" not in perm:
own = False
break # max right reach
- if not allowed:
- return HttpResponse(None, mimetype='text/plain')
+ EMPTY, mimetype = '', 'text/plain'
if 'type' in dct:
data_type = dct.pop('type')
+ if data_type == 'csv':
+ mimetype = 'text/csv'
if not data_type:
+ EMPTY = '[]'
data_type = 'json'
+ if not allowed:
+ return HttpResponse(EMPTY, mimetype='text/plain')
fields = [model._meta.get_field_by_name(k)[0]
for k in model._meta.get_all_field_names()]
request_keys = dict([(field.name,
@@ -247,7 +252,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
try:
old = 'old' in request_items and int(request_items['old'])
except ValueError:
- return HttpResponse(None, mimetype='text/plain')
+ return HttpResponse('[]', mimetype='text/plain')
for k in request_keys:
q = request_items.get(k)
if not q:
@@ -452,7 +457,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
for data in datas:
writer.writerow([val.encode(ENCODING) for val in data[1:]])
return response
- return HttpResponse(None, mimetype='text/plain')
+ return HttpResponse('{}', mimetype='text/plain')
return func