This commit is contained in:
David Kennedy 2025-01-31 13:07:36 -05:00
parent b1f528b9a2
commit 5996c4df12
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
3 changed files with 15 additions and 7 deletions

View file

@ -1,5 +1,6 @@
from registrar.utility import StrEnum
from django.db import models
from django.db.models import Q
from django.apps import apps
from django.forms import ValidationError
from registrar.utility.waffle import flag_is_active_for_user
@ -136,9 +137,12 @@ def validate_user_portfolio_permission(user_portfolio_permission):
"Based on current waffle flag settings, users cannot be assigned to multiple portfolios."
)
existing_invitations = PortfolioInvitation.objects.exclude(
portfolio=user_portfolio_permission.portfolio
).filter(email=user_portfolio_permission.user.email)
existing_invitations = PortfolioInvitation.objects.filter(
email=user_portfolio_permission.user.email
).exclude(
Q(portfolio=user_portfolio_permission.portfolio) |
Q(status=PortfolioInvitation.PortfolioInvitationStatus.RETRIEVED)
)
if existing_invitations.exists():
raise ValidationError(
"This user is already assigned to a portfolio invitation. "
@ -195,8 +199,11 @@ def validate_portfolio_invitation(portfolio_invitation):
if not flag_is_active_for_user(user, "multiple_portfolios"):
existing_permissions = UserPortfolioPermission.objects.filter(user=user)
existing_invitations = PortfolioInvitation.objects.exclude(id=portfolio_invitation.id).filter(
existing_invitations = PortfolioInvitation.objects.filter(
email=portfolio_invitation.email
).exclude(
Q(id=portfolio_invitation.id) |
Q(status=PortfolioInvitation.PortfolioInvitationStatus.RETRIEVED)
)
if existing_permissions.exists():