mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-17 15:04:11 +02:00
Fix unrelated test failure
This commit is contained in:
parent
1fdc33cd6b
commit
beb4e722b3
3 changed files with 19 additions and 15 deletions
|
@ -460,14 +460,14 @@ class PortfolioNewMemberForm(BasePortfolioMemberForm):
|
||||||
if hasattr(e, "code"):
|
if hasattr(e, "code"):
|
||||||
field = "email" if "email" in self.fields else None
|
field = "email" if "email" in self.fields else None
|
||||||
if e.code == "has_existing_permissions":
|
if e.code == "has_existing_permissions":
|
||||||
existing_permissions, existing_invitations = (
|
existing_permissions, existing_invitations = get_portfolio_invitation_associations(self.instance)
|
||||||
get_portfolio_invitation_associations(self.instance)
|
|
||||||
)
|
|
||||||
|
|
||||||
same_portfolio_for_permissions = existing_permissions.exclude(portfolio=self.instance.portfolio)
|
same_portfolio_for_permissions = existing_permissions.exclude(portfolio=self.instance.portfolio)
|
||||||
same_portfolio_for_invitations = existing_invitations.exclude(portfolio=self.instance.portfolio)
|
same_portfolio_for_invitations = existing_invitations.exclude(portfolio=self.instance.portfolio)
|
||||||
if same_portfolio_for_permissions.exists() or same_portfolio_for_invitations.exists():
|
if same_portfolio_for_permissions.exists() or same_portfolio_for_invitations.exists():
|
||||||
self.add_error(field, f"{self.instance.email} is already a member of another .gov organization.")
|
self.add_error(
|
||||||
|
field, f"{self.instance.email} is already a member of another .gov organization."
|
||||||
|
)
|
||||||
override_error = True
|
override_error = True
|
||||||
elif e.code == "has_existing_invitations":
|
elif e.code == "has_existing_invitations":
|
||||||
self.add_error(
|
self.add_error(
|
||||||
|
|
|
@ -286,8 +286,8 @@ def validate_user_portfolio_permission(user_portfolio_permission):
|
||||||
|
|
||||||
# == Validate the multiple_porfolios flag. == #
|
# == Validate the multiple_porfolios flag. == #
|
||||||
if not flag_is_active_for_user(user_portfolio_permission.user, "multiple_portfolios"):
|
if not flag_is_active_for_user(user_portfolio_permission.user, "multiple_portfolios"):
|
||||||
existing_permissions, existing_invitations = (
|
existing_permissions, existing_invitations = get_user_portfolio_permission_associations(
|
||||||
get_user_portfolio_permission_associations(user_portfolio_permission)
|
user_portfolio_permission
|
||||||
)
|
)
|
||||||
if existing_permissions.exists():
|
if existing_permissions.exists():
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
|
@ -303,6 +303,7 @@ def validate_user_portfolio_permission(user_portfolio_permission):
|
||||||
code="has_existing_invitations",
|
code="has_existing_invitations",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_user_portfolio_permission_associations(user_portfolio_permission):
|
def get_user_portfolio_permission_associations(user_portfolio_permission):
|
||||||
"""
|
"""
|
||||||
Retrieves the associations for a user portfolio invitation.
|
Retrieves the associations for a user portfolio invitation.
|
||||||
|
@ -320,7 +321,9 @@ def get_user_portfolio_permission_associations(user_portfolio_permission):
|
||||||
existing_permissions = UserPortfolioPermission.objects.exclude(id=user_portfolio_permission.id).filter(
|
existing_permissions = UserPortfolioPermission.objects.exclude(id=user_portfolio_permission.id).filter(
|
||||||
user=user_portfolio_permission.user
|
user=user_portfolio_permission.user
|
||||||
)
|
)
|
||||||
existing_invitations = PortfolioInvitation.objects.filter(email__iexact=user_portfolio_permission.user.email).exclude(
|
existing_invitations = PortfolioInvitation.objects.filter(
|
||||||
|
email__iexact=user_portfolio_permission.user.email
|
||||||
|
).exclude(
|
||||||
Q(portfolio=user_portfolio_permission.portfolio)
|
Q(portfolio=user_portfolio_permission.portfolio)
|
||||||
| Q(status=PortfolioInvitation.PortfolioInvitationStatus.RETRIEVED)
|
| Q(status=PortfolioInvitation.PortfolioInvitationStatus.RETRIEVED)
|
||||||
)
|
)
|
||||||
|
@ -375,9 +378,7 @@ def validate_portfolio_invitation(portfolio_invitation):
|
||||||
# If user returns None, then we check for global assignment of multiple_portfolios.
|
# If user returns None, then we check for global assignment of multiple_portfolios.
|
||||||
# Otherwise we just check on the user.
|
# Otherwise we just check on the user.
|
||||||
if not flag_is_active_for_user(user, "multiple_portfolios"):
|
if not flag_is_active_for_user(user, "multiple_portfolios"):
|
||||||
existing_permissions, existing_invitations = (
|
existing_permissions, existing_invitations = get_portfolio_invitation_associations(portfolio_invitation)
|
||||||
get_portfolio_invitation_associations(portfolio_invitation)
|
|
||||||
)
|
|
||||||
if existing_permissions.exists():
|
if existing_permissions.exists():
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
"This user is already assigned to a portfolio. "
|
"This user is already assigned to a portfolio. "
|
||||||
|
@ -392,6 +393,7 @@ def validate_portfolio_invitation(portfolio_invitation):
|
||||||
code="has_existing_invitations",
|
code="has_existing_invitations",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_portfolio_invitation_associations(portfolio_invitation):
|
def get_portfolio_invitation_associations(portfolio_invitation):
|
||||||
"""
|
"""
|
||||||
Retrieves the associations for a portfolio invitation.
|
Retrieves the associations for a portfolio invitation.
|
||||||
|
|
|
@ -3930,17 +3930,19 @@ class TestPortfolioInviteNewMemberView(MockEppLib, WebTest):
|
||||||
response = self.client.post(
|
response = self.client.post(
|
||||||
reverse("new-member"),
|
reverse("new-member"),
|
||||||
{
|
{
|
||||||
"role": UserPortfolioRoleChoices.ORGANIZATION_MEMBER.value,
|
"role": UserPortfolioRoleChoices.ORGANIZATION_ADMIN,
|
||||||
"domain_request_permission_member": UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value,
|
|
||||||
"email": self.user.email,
|
"email": self.user.email,
|
||||||
},
|
},
|
||||||
|
follow=True
|
||||||
)
|
)
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
|
with open("debug_response.html", "w") as f:
|
||||||
|
f.write(response.content.decode('utf-8'))
|
||||||
|
|
||||||
# Verify messages
|
# Verify messages
|
||||||
self.assertContains(
|
self.assertContains(
|
||||||
response,
|
response,
|
||||||
f"{self.user.email} is already a member of another .gov organization.",
|
"User is already a member of this portfolio.",
|
||||||
)
|
)
|
||||||
|
|
||||||
# Validate Database has not changed
|
# Validate Database has not changed
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue