mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-21 16:51:08 +02:00
wip
This commit is contained in:
parent
b1f528b9a2
commit
5996c4df12
3 changed files with 15 additions and 7 deletions
|
@ -1,5 +1,6 @@
|
||||||
from registrar.utility import StrEnum
|
from registrar.utility import StrEnum
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.db.models import Q
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
from django.forms import ValidationError
|
from django.forms import ValidationError
|
||||||
from registrar.utility.waffle import flag_is_active_for_user
|
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."
|
"Based on current waffle flag settings, users cannot be assigned to multiple portfolios."
|
||||||
)
|
)
|
||||||
|
|
||||||
existing_invitations = PortfolioInvitation.objects.exclude(
|
existing_invitations = PortfolioInvitation.objects.filter(
|
||||||
portfolio=user_portfolio_permission.portfolio
|
email=user_portfolio_permission.user.email
|
||||||
).filter(email=user_portfolio_permission.user.email)
|
).exclude(
|
||||||
|
Q(portfolio=user_portfolio_permission.portfolio) |
|
||||||
|
Q(status=PortfolioInvitation.PortfolioInvitationStatus.RETRIEVED)
|
||||||
|
)
|
||||||
if existing_invitations.exists():
|
if existing_invitations.exists():
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
"This user is already assigned to a portfolio invitation. "
|
"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"):
|
if not flag_is_active_for_user(user, "multiple_portfolios"):
|
||||||
existing_permissions = UserPortfolioPermission.objects.filter(user=user)
|
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
|
email=portfolio_invitation.email
|
||||||
|
).exclude(
|
||||||
|
Q(id=portfolio_invitation.id) |
|
||||||
|
Q(status=PortfolioInvitation.PortfolioInvitationStatus.RETRIEVED)
|
||||||
)
|
)
|
||||||
|
|
||||||
if existing_permissions.exists():
|
if existing_permissions.exists():
|
||||||
|
|
|
@ -273,7 +273,7 @@ def _send_portfolio_admin_addition_emails_to_portfolio_admins(email: str, reques
|
||||||
f"Could not send email organization admin notification to {user.email} for portfolio: {portfolio.name}",
|
f"Could not send email organization admin notification to {user.email} for portfolio: {portfolio.name}",
|
||||||
exc_info=True,
|
exc_info=True,
|
||||||
)
|
)
|
||||||
all_emails_sent = False
|
all_emails_sent = False
|
||||||
return all_emails_sent
|
return all_emails_sent
|
||||||
|
|
||||||
|
|
||||||
|
@ -324,5 +324,5 @@ def _send_portfolio_admin_removal_emails_to_portfolio_admins(email: str, request
|
||||||
f"Could not send email organization admin notification to {user.email} for portfolio: {portfolio.name}",
|
f"Could not send email organization admin notification to {user.email} for portfolio: {portfolio.name}",
|
||||||
exc_info=True,
|
exc_info=True,
|
||||||
)
|
)
|
||||||
all_emails_sent = False
|
all_emails_sent = False
|
||||||
return all_emails_sent
|
return all_emails_sent
|
||||||
|
|
|
@ -211,6 +211,7 @@ class PortfolioMemberEditView(PortfolioMemberEditPermissionView, View):
|
||||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=pk)
|
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=pk)
|
||||||
user = portfolio_permission.user
|
user = portfolio_permission.user
|
||||||
form = self.form_class(request.POST, instance=portfolio_permission)
|
form = self.form_class(request.POST, instance=portfolio_permission)
|
||||||
|
removing_admin_role_on_self = False
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
try:
|
try:
|
||||||
if form.is_change_from_member_to_admin():
|
if form.is_change_from_member_to_admin():
|
||||||
|
@ -477,7 +478,7 @@ class PortfolioInvitedMemberDeleteView(PortfolioMemberPermission, View):
|
||||||
else:
|
else:
|
||||||
logger.warning("Could not send email notification to existing organization admins.", exc_info=True)
|
logger.warning("Could not send email notification to existing organization admins.", exc_info=True)
|
||||||
messages.warning(self.request, "Could not send email notification to existing organization admins.")
|
messages.warning(self.request, "Could not send email notification to existing organization admins.")
|
||||||
|
|
||||||
|
|
||||||
class PortfolioInvitedMemberEditView(PortfolioMemberEditPermissionView, View):
|
class PortfolioInvitedMemberEditView(PortfolioMemberEditPermissionView, View):
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue