summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-10-16 17:57:13 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:43:48 +0100
commitc93dd3812c53d21ab8517dc7af72e1d4b70a1b04 (patch)
tree2153d8fd121f7ecd08a31e4867d58a2eb3c9aab7 /archaeological_warehouse/views.py
parentb8eef9b6aaed7ee097f8ea86174067f9ca42abd8 (diff)
downloadIshtar-c93dd3812c53d21ab8517dc7af72e1d4b70a1b04.tar.bz2
Ishtar-c93dd3812c53d21ab8517dc7af72e1d4b70a1b04.zip
♻ permissions refactoring: refactor has_permission methods
Diffstat (limited to 'archaeological_warehouse/views.py')
-rw-r--r--archaeological_warehouse/views.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py
index 4b3f494d8..416849c9a 100644
--- a/archaeological_warehouse/views.py
+++ b/archaeological_warehouse/views.py
@@ -95,10 +95,13 @@ new_container = new_qa_item(
def autocomplete_warehouse(request):
- if not request.user.has_perm(
- "ishtar_common.view_warehouse", models.Warehouse
- ) and not request.user.has_perm(
- "ishtar_common.view_own_warehouse", models.Warehouse
+ ishtaruser = getattr(request.user, "ishtaruser", None)
+ if not ishtaruser:
+ return HttpResponse(content_type="text/plain")
+ if not ishtaruser.has_permission(
+ "archaeological_warehouse.view_warehouse"
+ ) and not ishtaruser.has_permission(
+ "archaeological_warehouse.view_own_warehouse", models.Warehouse
):
return HttpResponse(content_type="text/plain")
if not request.GET.get("term"):
@@ -106,7 +109,8 @@ def autocomplete_warehouse(request):
q = request.GET.get("term")
query = Q()
for q in q.split(" "):
- extra = Q(name__icontains=q) | Q(slug__icontains=q) | Q(warehouse_type__label__icontains=q)
+ extra = Q(name__icontains=q) | Q(slug__icontains=q) | \
+ Q(warehouse_type__label__icontains=q)
query = query & extra
limit = 15
warehouses = models.Warehouse.objects.filter(query)[:limit]
@@ -117,10 +121,13 @@ def autocomplete_warehouse(request):
def autocomplete_container(request, warehouse_id=None):
- if not request.user.has_perm(
- "ishtar_common.view_warehouse", models.Warehouse
- ) and not request.user.has_perm(
- "ishtar_common.view_own_warehouse", models.Warehouse
+ ishtaruser = getattr(request.user, "ishtaruser", None)
+ if not ishtaruser:
+ return HttpResponse(content_type="text/plain")
+ if not ishtaruser.has_permission(
+ "archaeological_warehouse.view_container"
+ ) and not ishtaruser.has_permission(
+ "archaeological_warehouse.view_own_container"
):
return HttpResponse(content_type="text/plain")
if not request.GET.get("term"):