diff options
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 15 |
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 |