cleanup pt 2

This commit is contained in:
zandercymatics 2024-12-18 11:51:03 -07:00
parent 437981ff30
commit 08082fb0aa
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
5 changed files with 135 additions and 153 deletions

View file

@ -190,3 +190,4 @@
{% endblock portfolio_content%} {% endblock portfolio_content%}

View file

@ -2567,20 +2567,18 @@ class TestPortfolioInviteNewMemberView(TestWithUser, WebTest):
final_response = self.client.post( final_response = self.client.post(
reverse("new-member"), reverse("new-member"),
{ {
"role": "organization_member", "member_access_level": "basic",
"domain_request_permission_member": "view_all_requests", "basic_org_domain_request_permissions": "view_only",
"email": self.new_member_email, "email": self.new_member_email,
}, },
) )
# Ensure the final submission is successful # Ensure the final submission is successful
self.assertEqual(final_response.status_code, 302) # redirects after success self.assertEqual(final_response.status_code, 302) # redirects after success
# Validate Database Changes # Validate Database Changes
portfolio_invite = PortfolioInvitation.objects.filter( portfolio_invite = PortfolioInvitation.objects.filter(
email=self.new_member_email, email=self.new_member_email, portfolio=self.portfolio
portfolio=self.portfolio,
roles__exact=[UserPortfolioRoleChoices.ORGANIZATION_MEMBER],
additional_permissions__exact=[UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS],
).first() ).first()
self.assertIsNotNone(portfolio_invite) self.assertIsNotNone(portfolio_invite)
self.assertEqual(portfolio_invite.email, self.new_member_email) self.assertEqual(portfolio_invite.email, self.new_member_email)
@ -2602,14 +2600,15 @@ class TestPortfolioInviteNewMemberView(TestWithUser, WebTest):
response = self.client.post( response = self.client.post(
reverse("new-member"), reverse("new-member"),
{ {
"role": "organization_member", "member_access_level": "basic",
"domain_request_permission_member": "view_all_requests", "basic_org_domain_request_permissions": "view_only",
"email": self.invited_member_email, "email": self.invited_member_email,
}, },
) )
# Unsucessful form submissions return the same page with a 200 self.assertEqual(response.status_code, 302) # Redirects
self.assertEqual(response.status_code, 200)
self.assertEqual(response.context["form"].errors["email"][0], "An invitation already exists for this user.") # TODO: verify messages
# Validate Database has not changed # Validate Database has not changed
invite_count_after = PortfolioInvitation.objects.count() invite_count_after = PortfolioInvitation.objects.count()
self.assertEqual(invite_count_after, invite_count_before) self.assertEqual(invite_count_after, invite_count_before)
@ -2631,13 +2630,14 @@ class TestPortfolioInviteNewMemberView(TestWithUser, WebTest):
response = self.client.post( response = self.client.post(
reverse("new-member"), reverse("new-member"),
{ {
"role": "organization_member", "member_access_level": "basic",
"domain_request_permissions_member": "view_all_requests", "basic_org_domain_request_permissions": "view_only",
"email": self.user.email, "email": self.user.email,
}, },
) )
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 302) # Redirects
self.assertEqual(response.context["form"].errors["email"][0], "User is already a member of this portfolio.")
# TODO: verify messages
# Validate Database has not changed # Validate Database has not changed
invite_count_after = PortfolioInvitation.objects.count() invite_count_after = PortfolioInvitation.objects.count()
@ -2645,6 +2645,7 @@ class TestPortfolioInviteNewMemberView(TestWithUser, WebTest):
class TestEditPortfolioMemberView(WebTest): class TestEditPortfolioMemberView(WebTest):
"""Tests for the edit member page on portfolios"""
def setUp(self): def setUp(self):
self.user = create_user() self.user = create_user()

View file

@ -466,24 +466,6 @@ class PortfolioBasePermission(PermissionsLoginMixin):
return self.request.user.is_org_user(self.request) return self.request.user.is_org_user(self.request)
class PortfolioInvitationCreatePermission(PortfolioBasePermission):
"""Permission mixin that redirects to portfolio pages if user
has access, otherwise 403"""
def has_permission(self):
"""Check if this user has access to this portfolio.
The user is in self.request.user and the portfolio can be looked
up from the portfolio's primary key in self.kwargs["pk"]
"""
has_perm = super().has_permission()
if not has_perm:
return False
portfolio = self.request.session.get("portfolio")
return self.request.user.has_edit_members_portfolio_permission(portfolio)
class PortfolioDomainsPermission(PortfolioBasePermission): class PortfolioDomainsPermission(PortfolioBasePermission):
"""Permission mixin that allows access to portfolio domain pages if user """Permission mixin that allows access to portfolio domain pages if user
has access, otherwise 403""" has access, otherwise 403"""

View file

@ -3,7 +3,6 @@
import abc # abstract base class import abc # abstract base class
from django.views.generic import DetailView, DeleteView, TemplateView, UpdateView from django.views.generic import DetailView, DeleteView, TemplateView, UpdateView
from registrar.models import Domain, DomainRequest, DomainInvitation, Portfolio from registrar.models import Domain, DomainRequest, DomainInvitation, Portfolio
from registrar.models.portfolio_invitation import PortfolioInvitation
from registrar.models.user import User from registrar.models.user import User
from registrar.models.user_domain_role import UserDomainRole from registrar.models.user_domain_role import UserDomainRole
@ -15,7 +14,6 @@ from .mixins import (
DomainRequestWizardPermission, DomainRequestWizardPermission,
PortfolioDomainRequestsPermission, PortfolioDomainRequestsPermission,
PortfolioDomainsPermission, PortfolioDomainsPermission,
PortfolioInvitationCreatePermission,
PortfolioMemberDomainsPermission, PortfolioMemberDomainsPermission,
PortfolioMemberDomainsEditPermission, PortfolioMemberDomainsEditPermission,
PortfolioMemberEditPermission, PortfolioMemberEditPermission,