diff --git a/src/registrar/context_processors.py b/src/registrar/context_processors.py index 73f78a33e..f97cd093a 100644 --- a/src/registrar/context_processors.py +++ b/src/registrar/context_processors.py @@ -42,20 +42,28 @@ def is_production(request): def portfolio_permissions(request): """Make portfolio permissions for the request user available in global context""" - if not request.user.is_authenticated: + try: + if not request.user or not request.user.is_authenticated: + return { + "has_base_portfolio_permission": False, + "has_domains_portfolio_permission": False, + "has_domain_requests_portfolio_permission": False, + } + return { + "has_base_portfolio_permission": request.user.has_portfolio_permission( + User.UserPortfolioPermissionChoices.VIEW_PORTFOLIO + ), + "has_domains_portfolio_permission": request.user.has_portfolio_permission( + User.UserPortfolioPermissionChoices.VIEW_DOMAINS + ), + "has_domain_requests_portfolio_permission": request.user.has_portfolio_permission( + User.UserPortfolioPermissionChoices.VIEW_REQUESTS + ), + } + except AttributeError: + # Handles cases where request.user might not exist return { "has_base_portfolio_permission": False, "has_domains_portfolio_permission": False, "has_domain_requests_portfolio_permission": False, } - return { - "has_base_portfolio_permission": request.user.has_portfolio_permission( - User.UserPortfolioPermissionChoices.VIEW_PORTFOLIO - ), - "has_domains_portfolio_permission": request.user.has_portfolio_permission( - User.UserPortfolioPermissionChoices.VIEW_DOMAINS - ), - "has_domain_requests_portfolio_permission": request.user.has_portfolio_permission( - User.UserPortfolioPermissionChoices.VIEW_REQUESTS - ), - } diff --git a/src/registrar/tests/test_admin.py b/src/registrar/tests/test_admin.py index 781a815c4..5e53389cb 100644 --- a/src/registrar/tests/test_admin.py +++ b/src/registrar/tests/test_admin.py @@ -3614,7 +3614,7 @@ class TestMyUserAdmin(MockDb): }, ), ("User profile", {"fields": ("first_name", "middle_name", "last_name", "title", "email", "phone")}), - ("Permissions", {"fields": ("is_active", "groups")}), + ("Permissions", {"fields": ("is_active", "groups", "portfolio", "portfolio_roles", "portfolio_additional_permissions")}), ("Important dates", {"fields": ("last_login", "date_joined")}), ) self.assertEqual(fieldsets, expected_fieldsets)