diff --git a/src/registrar/admin.py b/src/registrar/admin.py index 2f9bc97c5..ddaaf15c2 100644 --- a/src/registrar/admin.py +++ b/src/registrar/admin.py @@ -1,6 +1,7 @@ import logging from django import forms from django.http import HttpResponse +from django.shortcuts import redirect from django_fsm import get_available_FIELD_transitions from django.contrib import admin, messages from django.contrib.auth.admin import UserAdmin as BaseUserAdmin @@ -342,6 +343,17 @@ class UserDomainRoleAdmin(ListHeaderAdmin): autocomplete_fields = ["user", "domain"] + # Fixes a bug where non-superusers are redirected to the main page + def delete_view(self, request, object_id, extra_context=None): + """Custom delete_view implementation that specifies redirect behaviour""" + response = super().delete_view(request, object_id, extra_context) + + if isinstance(response, HttpResponseRedirect) and not request.user.has_perm("registrar.full_access_permission"): + url = reverse("admin:registrar_userdomainrole_changelist") + return redirect(url) + else: + return response + class DomainInvitationAdmin(ListHeaderAdmin): """Custom domain invitation admin class."""