allow admin viewing of other user uploads

This commit is contained in:
Ross
2024-02-26 10:09:33 +00:00
parent 1f109de25b
commit ba8fa60adf
3 changed files with 13 additions and 2 deletions
+1
View File
@@ -2,6 +2,7 @@
{% block content %}
<h2>Uploaded dicoms</h2>
User: {{user}}<br/>
{% if not case %}
<div class="alert alert-info" role="alert">
Series imported from here will be orphaned (not associated with a case). It is usually better to create a case first and then import directly into the case.
+2
View File
@@ -37,8 +37,10 @@ urlpatterns = [
path("collection/", views.CollectionView.as_view(), name="collection_view"),
path("collection/user", views.user_collections, name="user_collections"),
path("uploads", views.user_uploads, name="user_uploads"),
path("uploads/<int:user_pk>/user", views.other_user_uploads, name="other_user_uploads"),
path("uploads/all", views.all_uploads, name="all_uploads"),
path("uploads/case/<int:case_id>", views.user_uploads, name="user_uploads_case"),
path("uploads/<int:user_pk>/user/case/<int:case_id>", views.other_user_uploads, name="other_user_uploads_case"),
path("uploads/series_id/<str:series_instance_uid>", views.user_uploads_series, name="user_uploads_series"),
path(
"collection/create",
+10 -2
View File
@@ -421,10 +421,18 @@ def user_uploads_series(request, series_instance_uid: str):
def all_uploads(request, case_id: int | None = None):
return user_uploads(request, case_id, user_only=False)
@user_passes_test(lambda u: u.is_superuser)
def other_user_uploads(request, user_pk: int, case_id: int | None = None):
return user_uploads(request, case_id, user_only=False, user_pk=user_pk)
@login_required
def user_uploads(request, case_id: int | None = None, user_only: bool = True):
def user_uploads(request, case_id: int | None = None, user_only: bool = True, user_pk: int | None = None):
user = request.user
if user_only:
dicoms = UncategorisedDicom.objects.filter(user=request.user)
elif user_pk is not None:
user = get_object_or_404(User, pk=user_pk)
dicoms = UncategorisedDicom.objects.filter(user=user)
else:
dicoms = UncategorisedDicom.objects.filter()
@@ -452,7 +460,7 @@ def user_uploads(request, case_id: int | None = None, user_only: bool = True):
case = get_object_or_404(Case, pk=case_id)
return render(
request, "atlas/user_uploads.html", {"series_list": series_list, "case": case}
request, "atlas/user_uploads.html", {"series_list": series_list, "case": case, "user": user}
)