Skip to content

Commit 270cb09

Browse files
committed
fix(user): drop stale select_related("global_role") in /user list view
Global_Role.user uses related_name="+" under legacy authorization (dojo/authorization/models.py:52), so Dojo_User has no `global_role` reverse accessor. The list view's select_related call was raising FieldError and 500'ing /user. Drop the arg — the template's {% if u.global_role.role %} silently evaluates falsy when the accessor is missing, so the Global Role column simply renders blank, matching the rest of the inert RBAC surface under legacy.
1 parent 88b8939 commit 270cb09

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

dojo/user/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ def change_password(request):
330330
def user(request):
331331
page_name = _("All Users")
332332
users = Dojo_User.objects.all() \
333-
.select_related("usercontactinfo", "global_role") \
333+
.select_related("usercontactinfo") \
334334
.order_by("username", "last_name", "first_name")
335335
users = UserFilter(request.GET, queryset=users)
336336
paged_users = get_page_items(request, users.qs, 25)

unittests/test_user_ui_timestamps.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,13 @@ def test_password_reset_confirm_stamps_password_last_reset(self):
9292
self.assertEqual(resp.status_code, 302)
9393
uci = UserContactInfo.objects.get(user=user)
9494
self.assertEqual(uci.password_last_reset, fixed)
95+
96+
def test_user_list_page_renders(self):
97+
# Regression: /user previously called select_related("global_role"),
98+
# but Global_Role.user uses related_name="+" under legacy
99+
# authorization, so Dojo_User has no `global_role` reverse accessor.
100+
# The select_related raised FieldError and 500'd the page.
101+
admin = Dojo_User.objects.get(username="admin")
102+
self.client.force_login(admin)
103+
resp = self.client.get(reverse("users"))
104+
self.assertEqual(resp.status_code, 200)

0 commit comments

Comments
 (0)