From 51dc7797b0aa813161a8be4a6b5bea5725ab1146 Mon Sep 17 00:00:00 2001 From: David Kennedy Date: Wed, 12 Feb 2025 21:30:21 -0500 Subject: [PATCH] updated code for readability --- src/djangooidc/views.py | 2 - src/registrar/decorators.py | 150 ++++++++---------- .../tests/test_management_scripts.py | 1 - src/registrar/tests/test_views.py | 11 +- src/registrar/tests/test_views_domain.py | 20 ++- src/registrar/tests/test_views_portfolio.py | 20 ++- src/registrar/tests/test_views_request.py | 76 ++++++--- .../tests/test_views_requests_json.py | 6 +- src/registrar/views/domain.py | 2 +- src/registrar/views/domain_requests_json.py | 1 - src/registrar/views/domains_json.py | 1 - src/registrar/views/utility/api_views.py | 2 - 12 files changed, 167 insertions(+), 125 deletions(-) diff --git a/src/djangooidc/views.py b/src/djangooidc/views.py index 984936a4c..815df4ecf 100644 --- a/src/djangooidc/views.py +++ b/src/djangooidc/views.py @@ -5,14 +5,12 @@ import logging from django.conf import settings from django.contrib.auth import logout as auth_logout from django.contrib.auth import authenticate, login -from login_required import login_not_required from django.http import HttpResponseRedirect from django.shortcuts import redirect from urllib.parse import parse_qs, urlencode from djangooidc.oidc import Client from djangooidc import exceptions as o_e -from registrar.decorators import grant_access from registrar.models import User from registrar.views.utility.error_views import custom_500_error_view, custom_401_error_view diff --git a/src/registrar/decorators.py b/src/registrar/decorators.py index 158139218..1147fe943 100644 --- a/src/registrar/decorators.py +++ b/src/registrar/decorators.py @@ -74,91 +74,74 @@ def _user_has_permission(user, request, rules, **kwargs): if ALL in rules: return True - # Ensure user is authenticated - if not user.is_authenticated: + # Ensure user is authenticated and not restricted + if not user.is_authenticated or user.is_restricted(): return False - # Ensure user is not restricted - if user.is_restricted(): - return False + # Define permission checks + permission_checks = [ + (IS_STAFF, lambda: user.is_staff), + (IS_DOMAIN_MANAGER, lambda: _is_domain_manager(user, **kwargs)), + (IS_STAFF_MANAGING_DOMAIN, lambda: _is_staff_managing_domain(request, **kwargs)), + (IS_PORTFOLIO_MEMBER, lambda: user.is_org_user(request)), + ( + HAS_PORTFOLIO_DOMAINS_VIEW_ALL, + lambda: _can_access_domain_via_portfolio_view_all_domains(request, kwargs.get("domain_pk")), + ), + ( + HAS_PORTFOLIO_DOMAINS_ANY_PERM, + lambda: user.is_org_user(request) + and user.has_any_domains_portfolio_permission(request.session.get("portfolio")), + ), + ( + IS_PORTFOLIO_MEMBER_AND_DOMAIN_MANAGER, + lambda: _is_domain_manager(user, **kwargs) and _is_portfolio_member(request), + ), + ( + IS_DOMAIN_MANAGER_AND_NOT_PORTFOLIO_MEMBER, + lambda: _is_domain_manager(user, **kwargs) and not _is_portfolio_member(request), + ), + ( + IS_DOMAIN_REQUEST_CREATOR, + lambda: _is_domain_request_creator(user, kwargs.get("domain_request_pk")) + and not _is_portfolio_member(request), + ), + ( + HAS_PORTFOLIO_DOMAIN_REQUESTS_ANY_PERM, + lambda: user.is_org_user(request) + and user.has_any_requests_portfolio_permission(request.session.get("portfolio")), + ), + ( + HAS_PORTFOLIO_DOMAIN_REQUESTS_VIEW_ALL, + lambda: user.is_org_user(request) + and user.has_view_all_domain_requests_portfolio_permission(request.session.get("portfolio")), + ), + ( + HAS_PORTFOLIO_DOMAIN_REQUESTS_EDIT, + lambda: _has_portfolio_domain_requests_edit(user, request, kwargs.get("domain_request_pk")), + ), + ( + HAS_PORTFOLIO_MEMBERS_ANY_PERM, + lambda: user.is_org_user(request) + and ( + user.has_view_members_portfolio_permission(request.session.get("portfolio")) + or user.has_edit_members_portfolio_permission(request.session.get("portfolio")) + ), + ), + ( + HAS_PORTFOLIO_MEMBERS_EDIT, + lambda: user.is_org_user(request) + and user.has_edit_members_portfolio_permission(request.session.get("portfolio")), + ), + ( + HAS_PORTFOLIO_MEMBERS_VIEW, + lambda: user.is_org_user(request) + and user.has_view_members_portfolio_permission(request.session.get("portfolio")), + ), + ] - conditions_met = [] - - if IS_STAFF in rules: - conditions_met.append(user.is_staff) - - if not any(conditions_met) and IS_DOMAIN_MANAGER in rules: - has_permission = _is_domain_manager(user, **kwargs) - conditions_met.append(has_permission) - - if not any(conditions_met) and IS_STAFF_MANAGING_DOMAIN in rules: - has_permission = _is_staff_managing_domain(request, **kwargs) - conditions_met.append(has_permission) - - if not any(conditions_met) and IS_PORTFOLIO_MEMBER in rules: - has_permission = user.is_org_user(request) - conditions_met.append(has_permission) - - if not any(conditions_met) and HAS_PORTFOLIO_DOMAINS_VIEW_ALL in rules: - domain_id = kwargs.get("domain_pk") - has_permission = _can_access_domain_via_portfolio_view_all_domains(request, domain_id) - conditions_met.append(has_permission) - - if not any(conditions_met) and HAS_PORTFOLIO_DOMAINS_ANY_PERM in rules: - has_permission = user.is_org_user(request) and user.has_any_domains_portfolio_permission( - request.session.get("portfolio") - ) - conditions_met.append(has_permission) - - if not any(conditions_met) and IS_PORTFOLIO_MEMBER_AND_DOMAIN_MANAGER in rules: - has_permission = _is_domain_manager(user, **kwargs) and _is_portfolio_member(request) - conditions_met.append(has_permission) - - if not any(conditions_met) and IS_DOMAIN_MANAGER_AND_NOT_PORTFOLIO_MEMBER in rules: - has_permission = _is_domain_manager(user, **kwargs) and not _is_portfolio_member(request) - conditions_met.append(has_permission) - - if not any(conditions_met) and IS_DOMAIN_REQUEST_CREATOR in rules: - domain_request_id = kwargs.get("domain_request_pk") - has_permission = _is_domain_request_creator(user, domain_request_id) and not _is_portfolio_member(request) - conditions_met.append(has_permission) - - if not any(conditions_met) and HAS_PORTFOLIO_DOMAIN_REQUESTS_ANY_PERM in rules: - has_permission = user.is_org_user(request) and user.has_any_requests_portfolio_permission( - request.session.get("portfolio") - ) - conditions_met.append(has_permission) - - if not any(conditions_met) and HAS_PORTFOLIO_DOMAIN_REQUESTS_VIEW_ALL in rules: - has_permission = user.is_org_user(request) and user.has_view_all_domain_requests_portfolio_permission( - request.session.get("portfolio") - ) - conditions_met.append(has_permission) - - if not any(conditions_met) and HAS_PORTFOLIO_DOMAIN_REQUESTS_EDIT in rules: - domain_request_id = kwargs.get("domain_request_pk") - has_permission = _has_portfolio_domain_requests_edit(user, request, domain_request_id) - conditions_met.append(has_permission) - - if not any(conditions_met) and HAS_PORTFOLIO_MEMBERS_ANY_PERM in rules: - portfolio = request.session.get("portfolio") - has_permission = user.is_org_user(request) and ( - user.has_view_members_portfolio_permission(portfolio) - or user.has_edit_members_portfolio_permission(portfolio) - ) - conditions_met.append(has_permission) - - if not any(conditions_met) and HAS_PORTFOLIO_MEMBERS_EDIT in rules: - portfolio = request.session.get("portfolio") - has_permission = user.is_org_user(request) and user.has_edit_members_portfolio_permission(portfolio) - conditions_met.append(has_permission) - - if not any(conditions_met) and HAS_PORTFOLIO_MEMBERS_VIEW in rules: - portfolio = request.session.get("portfolio") - has_permission = user.is_org_user(request) and user.has_view_members_portfolio_permission(portfolio) - conditions_met.append(has_permission) - - return any(conditions_met) + # Check conditions iteratively + return any(check() for rule, check in permission_checks if rule in rules) def _has_portfolio_domain_requests_edit(user, request, domain_request_id): @@ -173,7 +156,8 @@ def _is_domain_manager(user, **kwargs): - First, it checks if 'domain_pk' is present in the URL parameters. - If 'domain_pk' exists, it verifies if the user has a domain role for that domain. - - If 'domain_pk' is absent, it checks for 'domain_invitation_pk' to determine if the user has domain permissions through an invitation. + - If 'domain_pk' is absent, it checks for 'domain_invitation_pk' to determine if the user + has domain permissions through an invitation. Returns: bool: True if the user is a domain manager, False otherwise. diff --git a/src/registrar/tests/test_management_scripts.py b/src/registrar/tests/test_management_scripts.py index 668eeff0e..17e4736c4 100644 --- a/src/registrar/tests/test_management_scripts.py +++ b/src/registrar/tests/test_management_scripts.py @@ -37,7 +37,6 @@ from epplibwrapper import commands, common from .common import ( MockEppLib, - less_console_noise, completed_domain_request, MockSESClient, MockDbForIndividualTests, diff --git a/src/registrar/tests/test_views.py b/src/registrar/tests/test_views.py index 7521719f8..3f5413e5a 100644 --- a/src/registrar/tests/test_views.py +++ b/src/registrar/tests/test_views.py @@ -292,7 +292,9 @@ class HomeTests(TestWithUser): ) # Trigger the delete logic - response = self.client.post(reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True) + response = self.client.post( + reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True + ) self.assertNotContains(response, "igorville.gov") @@ -309,7 +311,9 @@ class HomeTests(TestWithUser): ) # Trigger the delete logic - response = self.client.post(reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True) + response = self.client.post( + reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True + ) self.assertNotContains(response, "igorville.gov") @@ -335,7 +339,8 @@ class HomeTests(TestWithUser): # Trigger the delete logic response = self.client.post( - reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True + reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), + follow=True, ) # Check for a 403 error - the end user should not be allowed to do this diff --git a/src/registrar/tests/test_views_domain.py b/src/registrar/tests/test_views_domain.py index d9aac8178..676c4ef5f 100644 --- a/src/registrar/tests/test_views_domain.py +++ b/src/registrar/tests/test_views_domain.py @@ -692,7 +692,9 @@ class TestDomainDetailDomainRenewal(TestDomainOverview): with patch.object(Domain, "is_expired", self.custom_is_expired_true), patch.object( Domain, "is_expired", self.custom_is_expired_true ): - renewal_page = self.client.get(reverse("domain-renewal", kwargs={"domain_pk": self.domain_no_domain_manager.id})) + renewal_page = self.client.get( + reverse("domain-renewal", kwargs={"domain_pk": self.domain_no_domain_manager.id}) + ) self.assertEqual(renewal_page.status_code, 403) @override_flag("domain_renewal", active=True) @@ -723,7 +725,9 @@ class TestDomainDetailDomainRenewal(TestDomainOverview): # Check for the updated expiration formatted_new_expiration_date = self.expiration_date_one_year_out().strftime("%b. %-d, %Y") - redirect_response = self.client.get(reverse("domain", kwargs={"domain_pk": self.domain_with_ip.id}), follow=True) + redirect_response = self.client.get( + reverse("domain", kwargs={"domain_pk": self.domain_with_ip.id}), follow=True + ) self.assertContains(redirect_response, formatted_new_expiration_date) @@ -1070,7 +1074,9 @@ class TestDomainManagers(TestDomainOverview): """Removing a domain manager sends notification email to other domain managers.""" self.manager, _ = User.objects.get_or_create(email="mayor@igorville.com", first_name="Hello", last_name="World") self.manager_domain_permission, _ = UserDomainRole.objects.get_or_create(user=self.manager, domain=self.domain) - self.client.post(reverse("domain-user-delete", kwargs={"domain_pk": self.domain.id, "user_pk": self.manager.id})) + self.client.post( + reverse("domain-user-delete", kwargs={"domain_pk": self.domain.id, "user_pk": self.manager.id}) + ) # Verify that the notification emails were sent to domain manager mock_send_templated_email.assert_called_once_with( @@ -1355,7 +1361,9 @@ class TestDomainManagers(TestDomainOverview): invitation, _ = DomainInvitation.objects.get_or_create( domain=self.domain, email=email_address, status=DomainInvitation.DomainInvitationStatus.RETRIEVED ) - response = self.client.post(reverse("invitation-cancel", kwargs={"domain_invitation_pk": invitation.id}), follow=True) + response = self.client.post( + reverse("invitation-cancel", kwargs={"domain_invitation_pk": invitation.id}), follow=True + ) # Assert that an error message is displayed to the user self.assertContains(response, f"Invitation to {email_address} has already been retrieved.") # Assert that the Cancel link (form) is not displayed @@ -2936,7 +2944,9 @@ class TestDomainChangeNotifications(TestDomainOverview): def test_no_notification_when_dns_needed(self): """Test that an email is not sent when nameservers are changed while the state is DNS_NEEDED.""" - nameservers_page = self.app.get(reverse("domain-dns-nameservers", kwargs={"domain_pk": self.domain_dns_needed.id})) + nameservers_page = self.app.get( + reverse("domain-dns-nameservers", kwargs={"domain_pk": self.domain_dns_needed.id}) + ) session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] # add nameservers diff --git a/src/registrar/tests/test_views_portfolio.py b/src/registrar/tests/test_views_portfolio.py index 9de6fbbf2..530908f1f 100644 --- a/src/registrar/tests/test_views_portfolio.py +++ b/src/registrar/tests/test_views_portfolio.py @@ -1320,7 +1320,9 @@ class TestPortfolio(WebTest): self.client.force_login(self.user) # Perform delete - response = self.client.post(reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True) + response = self.client.post( + reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True + ) # Check that the response is 200 self.assertEqual(response.status_code, 200) @@ -1354,7 +1356,9 @@ class TestPortfolio(WebTest): self.client.force_login(self.user) # Attempt to delete - response = self.client.post(reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True) + response = self.client.post( + reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True + ) # Check response is 403 Forbidden self.assertEqual(response.status_code, 403) @@ -1389,7 +1393,9 @@ class TestPortfolio(WebTest): self.client.force_login(self.user) # Perform delete as self.user - response = self.client.post(reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True) + response = self.client.post( + reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True + ) # Check response is 403 Forbidden self.assertEqual(response.status_code, 403) @@ -3244,7 +3250,9 @@ class TestRequestingEntity(WebTest): def test_requesting_entity_page_errors(self): """Tests that we get the expected form errors on requesting entity""" domain_request = completed_domain_request(user=self.user, portfolio=self.portfolio) - response = self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})).follow() + response = self.app.get( + reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}) + ).follow() form = response.forms[0] session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) @@ -3334,7 +3342,9 @@ class TestRequestingEntity(WebTest): domain_request.submit() - response = self.app.get(reverse("domain-request-status-viewonly", kwargs={"domain_request_pk": domain_request.pk})) + response = self.app.get( + reverse("domain-request-status-viewonly", kwargs={"domain_request_pk": domain_request.pk}) + ) self.assertContains(response, "Requesting entity") self.assertContains(response, "moon") self.assertContains(response, "kepler, AL") diff --git a/src/registrar/tests/test_views_request.py b/src/registrar/tests/test_views_request.py index d70300f9c..6818759c5 100644 --- a/src/registrar/tests/test_views_request.py +++ b/src/registrar/tests/test_views_request.py @@ -1114,7 +1114,9 @@ class DomainRequestTests(TestWithUser, WebTest): def test_yes_no_additional_form_inits_blank_for_new_domain_request(self): """On the Additional Details page, the yes/no form gets initialized with nothing selected for new domain requests""" - additional_details_page = self.app.get(reverse("domain-request:additional_details", kwargs={"domain_request_pk": 0})) + additional_details_page = self.app.get( + reverse("domain-request:additional_details", kwargs={"domain_request_pk": 0}) + ) additional_form = additional_details_page.forms[0] # Check the cisa representative yes/no field @@ -1138,7 +1140,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) + other_contacts_page = self.app.get( + reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1195,7 +1199,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) + other_contacts_page = self.app.get( + reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1480,7 +1486,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) + other_contacts_page = self.app.get( + reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1528,7 +1536,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) + other_contacts_page = self.app.get( + reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1612,7 +1622,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) + other_contacts_page = self.app.get( + reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1745,7 +1757,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.id})) + other_contacts_page = self.app.get( + reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.id}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1818,7 +1832,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.id})) + other_contacts_page = self.app.get( + reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.id}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1895,7 +1911,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.id})) + other_contacts_page = self.app.get( + reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.id}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1975,7 +1993,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) + other_contacts_page = self.app.get( + reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -2051,7 +2071,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) + other_contacts_page = self.app.get( + reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -2121,7 +2143,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - so_page = self.app.get(reverse("domain-request:senior_official", kwargs={"domain_request_pk": domain_request.pk})) + so_page = self.app.get( + reverse("domain-request:senior_official", kwargs={"domain_request_pk": domain_request.pk}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) so_form = so_page.forms[0] @@ -2190,7 +2214,9 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - so_page = self.app.get(reverse("domain-request:senior_official", kwargs={"domain_request_pk": domain_request.pk})) + so_page = self.app.get( + reverse("domain-request:senior_official", kwargs={"domain_request_pk": domain_request.pk}) + ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) so_form = so_page.forms[0] @@ -2539,7 +2565,9 @@ class DomainRequestTests(TestWithUser, WebTest): new_domain_request_id = all_domain_requests.first().id # Skip to the current sites page - current_sites_page = self.app.get(reverse("domain-request:current_sites", kwargs={"domain_request_pk": new_domain_request_id})) + current_sites_page = self.app.get( + reverse("domain-request:current_sites", kwargs={"domain_request_pk": new_domain_request_id}) + ) # fill in the form field current_sites_form = current_sites_page.forms[0] self.assertIn("current_sites-0-website", current_sites_form.fields) @@ -2742,7 +2770,9 @@ class DomainRequestTests(TestWithUser, WebTest): # This user should also be forbidden from editing existing ones domain_request = completed_domain_request(user=self.user) - edit_page = self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}), expect_errors=True) + edit_page = self.app.get( + reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}), expect_errors=True + ) self.assertEqual(edit_page.status_code, 403) # Cleanup @@ -2767,7 +2797,9 @@ class DomainRequestTests(TestWithUser, WebTest): # This user should also be allowed to edit existing ones domain_request = completed_domain_request(user=self.user) - edit_page = self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})).follow() + edit_page = self.app.get( + reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}) + ).follow() self.assertEqual(edit_page.status_code, 200) def test_non_creator_access(self): @@ -2776,14 +2808,18 @@ class DomainRequestTests(TestWithUser, WebTest): other_user = User.objects.create_user(username="other_user", password=p) domain_request = completed_domain_request(user=other_user) - edit_page = self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}), expect_errors=True) + edit_page = self.app.get( + reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}), expect_errors=True + ) self.assertEqual(edit_page.status_code, 403) def test_creator_access(self): """Tests that a user can edit a domain request they created""" domain_request = completed_domain_request(user=self.user) - edit_page = self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})).follow() + edit_page = self.app.get( + reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}) + ).follow() self.assertEqual(edit_page.status_code, 200) @@ -3202,7 +3238,9 @@ class TestDomainRequestWizard(TestWithUser, WebTest): self.assertContains(detail_page, "usa-current", count=2) # We default to the requesting entity page - expected_url = reverse("domain-request:portfolio_requesting_entity", kwargs={"domain_request_pk": domain_request.id}) + expected_url = reverse( + "domain-request:portfolio_requesting_entity", kwargs={"domain_request_pk": domain_request.id} + ) # This returns the entire url, thus "in" self.assertIn(expected_url, detail_page.request.url) else: diff --git a/src/registrar/tests/test_views_requests_json.py b/src/registrar/tests/test_views_requests_json.py index 55d9141ab..8f50e16bb 100644 --- a/src/registrar/tests/test_views_requests_json.py +++ b/src/registrar/tests/test_views_requests_json.py @@ -342,7 +342,8 @@ class GetRequestsJsonTest(TestWithUser, WebTest): # Test case where action is View self.assertEqual("View", action_labels[i]) self.assertEqual( - reverse("domain-request-status-viewonly", kwargs={"domain_request_pk": expected_domain_request.id}), action_urls[i] + reverse("domain-request-status-viewonly", kwargs={"domain_request_pk": expected_domain_request.id}), + action_urls[i], ) self.assertEqual("visibility", svg_icons[i]) elif status[i] in [ @@ -360,7 +361,8 @@ class GetRequestsJsonTest(TestWithUser, WebTest): # Test case where action is Manage self.assertEqual("Manage", action_labels[i]) self.assertEqual( - reverse("domain-request-status", kwargs={"domain_request_pk": expected_domain_request.id}), action_urls[i] + reverse("domain-request-status", kwargs={"domain_request_pk": expected_domain_request.id}), + action_urls[i], ) self.assertEqual("settings", svg_icons[i]) diff --git a/src/registrar/views/domain.py b/src/registrar/views/domain.py index 1f0285314..d424bd978 100644 --- a/src/registrar/views/domain.py +++ b/src/registrar/views/domain.py @@ -1240,7 +1240,7 @@ class DomainUsersView(DomainBaseView): """Domain managers page in the domain details.""" template_name = "domain_users.html" - + def get_context_data(self, **kwargs): """The initial value for the form (which is a formset here).""" context = super().get_context_data(**kwargs) diff --git a/src/registrar/views/domain_requests_json.py b/src/registrar/views/domain_requests_json.py index fb0702a58..0533af66b 100644 --- a/src/registrar/views/domain_requests_json.py +++ b/src/registrar/views/domain_requests_json.py @@ -3,7 +3,6 @@ from django.core.paginator import Paginator from registrar.decorators import grant_access, ALL from registrar.models import DomainRequest from django.utils.dateformat import format -from django.contrib.auth.decorators import login_required from django.urls import reverse from django.db.models import Q diff --git a/src/registrar/views/domains_json.py b/src/registrar/views/domains_json.py index f23fdd3b4..676115904 100644 --- a/src/registrar/views/domains_json.py +++ b/src/registrar/views/domains_json.py @@ -3,7 +3,6 @@ from django.http import JsonResponse from django.core.paginator import Paginator from registrar.decorators import grant_access, ALL from registrar.models import UserDomainRole, Domain, DomainInformation, User -from django.contrib.auth.decorators import login_required from django.urls import reverse from django.db.models import Q diff --git a/src/registrar/views/utility/api_views.py b/src/registrar/views/utility/api_views.py index fbbe72f01..6d0a2b5ec 100644 --- a/src/registrar/views/utility/api_views.py +++ b/src/registrar/views/utility/api_views.py @@ -3,8 +3,6 @@ from django.http import JsonResponse from django.forms.models import model_to_dict from registrar.decorators import IS_STAFF, grant_access from registrar.models import FederalAgency, SeniorOfficial, DomainRequest -from django.contrib.admin.views.decorators import staff_member_required -from django.contrib.auth.decorators import login_required from registrar.utility.admin_helpers import get_action_needed_reason_default_email, get_rejection_reason_default_email from registrar.models.portfolio import Portfolio from registrar.utility.constants import BranchChoices