mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-27 21:16:28 +02:00
a little bit of linting
This commit is contained in:
parent
4e4e2c0d8e
commit
1fe97eb54e
8 changed files with 52 additions and 38 deletions
|
@ -1494,7 +1494,9 @@ class PortfolioInvitationAdmin(ListHeaderAdmin):
|
||||||
requestor = request.user
|
requestor = request.user
|
||||||
|
|
||||||
requested_user = User.objects.filter(email=requested_email).first()
|
requested_user = User.objects.filter(email=requested_email).first()
|
||||||
permission_exists = UserPortfolioPermission.objects.filter(user=requested_user, portfolio=portfolio).exists()
|
permission_exists = UserPortfolioPermission.objects.filter(
|
||||||
|
user=requested_user, portfolio=portfolio
|
||||||
|
).exists()
|
||||||
try:
|
try:
|
||||||
if not requested_user or not permission_exists:
|
if not requested_user or not permission_exists:
|
||||||
send_portfolio_invitation_email(email=requested_email, requestor=requestor, portfolio=portfolio)
|
send_portfolio_invitation_email(email=requested_email, requestor=requestor, portfolio=portfolio)
|
||||||
|
@ -1511,14 +1513,21 @@ class PortfolioInvitationAdmin(ListHeaderAdmin):
|
||||||
def _handle_exceptions(self, exception, request, obj):
|
def _handle_exceptions(self, exception, request, obj):
|
||||||
"""Handle exceptions raised during the process."""
|
"""Handle exceptions raised during the process."""
|
||||||
if isinstance(exception, EmailSendingError):
|
if isinstance(exception, EmailSendingError):
|
||||||
logger.warning("Could not sent email invitation to %s for portfolio %s (EmailSendingError)", obj.email, obj.portfolio, exc_info=True)
|
logger.warning(
|
||||||
|
"Could not sent email invitation to %s for portfolio %s (EmailSendingError)",
|
||||||
|
obj.email,
|
||||||
|
obj.portfolio,
|
||||||
|
exc_info=True,
|
||||||
|
)
|
||||||
messages.error(request, "Could not send email invitation. Portfolio invitation not saved.")
|
messages.error(request, "Could not send email invitation. Portfolio invitation not saved.")
|
||||||
elif isinstance(exception, MissingEmailError):
|
elif isinstance(exception, MissingEmailError):
|
||||||
messages.error(request, str(exception))
|
messages.error(request, str(exception))
|
||||||
logger.error(
|
logger.error(
|
||||||
f"Can't send email to '{obj.email}' for portfolio '{obj.portfolio}'. No email exists for the requestor.",
|
f"Can't send email to '{obj.email}' for portfolio '{obj.portfolio}'. "
|
||||||
|
f"No email exists for the requestor.",
|
||||||
exc_info=True,
|
exc_info=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
logger.warning("Could not send email invitation (Other Exception)", obj.portfolio, exc_info=True)
|
logger.warning("Could not send email invitation (Other Exception)", obj.portfolio, exc_info=True)
|
||||||
messages.error(request, "Could not send email invitation. Portfolio invitation not saved.")
|
messages.error(request, "Could not send email invitation. Portfolio invitation not saved.")
|
||||||
|
|
|
@ -12,7 +12,6 @@ from registrar.models import (
|
||||||
DomainInformation,
|
DomainInformation,
|
||||||
Portfolio,
|
Portfolio,
|
||||||
SeniorOfficial,
|
SeniorOfficial,
|
||||||
User,
|
|
||||||
)
|
)
|
||||||
from registrar.models.utility.portfolio_helper import UserPortfolioPermissionChoices, UserPortfolioRoleChoices
|
from registrar.models.utility.portfolio_helper import UserPortfolioPermissionChoices, UserPortfolioRoleChoices
|
||||||
|
|
||||||
|
@ -111,9 +110,9 @@ class PortfolioSeniorOfficialForm(forms.ModelForm):
|
||||||
return cleaned_data
|
return cleaned_data
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class BasePortfolioMemberForm(forms.ModelForm):
|
class BasePortfolioMemberForm(forms.ModelForm):
|
||||||
"""Base form for the PortfolioMemberForm and PortfolioInvitedMemberForm"""
|
"""Base form for the PortfolioMemberForm and PortfolioInvitedMemberForm"""
|
||||||
|
|
||||||
required_star = '<abbr class="usa-hint usa-hint--required" title="required">*</abbr>'
|
required_star = '<abbr class="usa-hint usa-hint--required" title="required">*</abbr>'
|
||||||
role = forms.ChoiceField(
|
role = forms.ChoiceField(
|
||||||
choices=[
|
choices=[
|
||||||
|
@ -180,7 +179,7 @@ class BasePortfolioMemberForm(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = None
|
model = None
|
||||||
fields = ["roles", "additional_permissions" ]
|
fields = ["roles", "additional_permissions"]
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
@ -301,7 +300,7 @@ class PortfolioMemberForm(BasePortfolioMemberForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserPortfolioPermission
|
model = UserPortfolioPermission
|
||||||
fields = ["roles", "additional_permissions" ]
|
fields = ["roles", "additional_permissions"]
|
||||||
|
|
||||||
|
|
||||||
class PortfolioInvitedMemberForm(BasePortfolioMemberForm):
|
class PortfolioInvitedMemberForm(BasePortfolioMemberForm):
|
||||||
|
@ -311,8 +310,7 @@ class PortfolioInvitedMemberForm(BasePortfolioMemberForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PortfolioInvitation
|
model = PortfolioInvitation
|
||||||
fields = ["roles", "additional_permissions" ]
|
fields = ["roles", "additional_permissions"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class PortfolioNewMemberForm(BasePortfolioMemberForm):
|
class PortfolioNewMemberForm(BasePortfolioMemberForm):
|
||||||
|
@ -336,4 +334,3 @@ class PortfolioNewMemberForm(BasePortfolioMemberForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PortfolioInvitation
|
model = PortfolioInvitation
|
||||||
fields = ["portfolio", "email", "roles", "additional_permissions"]
|
fields = ["portfolio", "email", "roles", "additional_permissions"]
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ from typing import Optional
|
||||||
from django_fsm import FSMField, transition, TransitionNotAllowed # type: ignore
|
from django_fsm import FSMField, transition, TransitionNotAllowed # type: ignore
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.urls import reverse
|
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from typing import Any
|
from typing import Any
|
||||||
from registrar.models.host import Host
|
from registrar.models.host import Host
|
||||||
|
|
|
@ -10,6 +10,7 @@ import logging
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class Portfolio(TimeStampedModel):
|
class Portfolio(TimeStampedModel):
|
||||||
"""
|
"""
|
||||||
Portfolio is used for organizing domains/domain-requests into
|
Portfolio is used for organizing domains/domain-requests into
|
||||||
|
|
|
@ -8,6 +8,7 @@ import logging
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class UserPortfolioRoleChoices(models.TextChoices):
|
class UserPortfolioRoleChoices(models.TextChoices):
|
||||||
"""
|
"""
|
||||||
Roles make it easier for admins to look at
|
Roles make it easier for admins to look at
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from registrar.models import DomainInvitation
|
from registrar.models import DomainInvitation
|
||||||
from registrar.models.portfolio_invitation import PortfolioInvitation
|
|
||||||
from registrar.models.user_portfolio_permission import UserPortfolioPermission
|
|
||||||
from registrar.utility.errors import (
|
from registrar.utility.errors import (
|
||||||
AlreadyDomainInvitedError,
|
AlreadyDomainInvitedError,
|
||||||
AlreadyDomainManagerError,
|
AlreadyDomainManagerError,
|
||||||
|
@ -9,7 +7,7 @@ from registrar.utility.errors import (
|
||||||
OutsideOrgMemberError,
|
OutsideOrgMemberError,
|
||||||
)
|
)
|
||||||
from registrar.utility.waffle import flag_is_active_for_user
|
from registrar.utility.waffle import flag_is_active_for_user
|
||||||
from registrar.utility.email import send_templated_email, EmailSendingError
|
from registrar.utility.email import send_templated_email
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
|
@ -1128,7 +1128,10 @@ class DomainUsersView(DomainBaseView):
|
||||||
for portfolio_invitation in portfolio_invitations:
|
for portfolio_invitation in portfolio_invitations:
|
||||||
logger.info(portfolio_invitation)
|
logger.info(portfolio_invitation)
|
||||||
logger.info(portfolio_invitation.roles)
|
logger.info(portfolio_invitation.roles)
|
||||||
if portfolio_invitation.roles and UserPortfolioRoleChoices.ORGANIZATION_ADMIN in portfolio_invitation.roles:
|
if (
|
||||||
|
portfolio_invitation.roles
|
||||||
|
and UserPortfolioRoleChoices.ORGANIZATION_ADMIN in portfolio_invitation.roles
|
||||||
|
):
|
||||||
has_admin_flag = True
|
has_admin_flag = True
|
||||||
break # Once we find one match, no need to check further
|
break # Once we find one match, no need to check further
|
||||||
|
|
||||||
|
@ -1210,14 +1213,12 @@ class DomainAddUserView(DomainFormBaseView):
|
||||||
|
|
||||||
# Determine membership in a different organization
|
# Determine membership in a different organization
|
||||||
member_of_a_different_org = (
|
member_of_a_different_org = (
|
||||||
(existing_org_permission and existing_org_permission.portfolio != requestor_org) or
|
existing_org_permission and existing_org_permission.portfolio != requestor_org
|
||||||
(existing_org_invitation and existing_org_invitation.portfolio != requestor_org)
|
) or (existing_org_invitation and existing_org_invitation.portfolio != requestor_org)
|
||||||
)
|
|
||||||
|
|
||||||
# Determine membership in the same organization
|
# Determine membership in the same organization
|
||||||
member_of_this_org = (
|
member_of_this_org = (existing_org_permission and existing_org_permission.portfolio == requestor_org) or (
|
||||||
(existing_org_permission and existing_org_permission.portfolio == requestor_org) or
|
existing_org_invitation and existing_org_invitation.portfolio == requestor_org
|
||||||
(existing_org_invitation and existing_org_invitation.portfolio == requestor_org)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return member_of_a_different_org, member_of_this_org
|
return member_of_a_different_org, member_of_this_org
|
||||||
|
@ -1232,7 +1233,9 @@ class DomainAddUserView(DomainFormBaseView):
|
||||||
# Get the requestor's organization
|
# Get the requestor's organization
|
||||||
requestor_org = UserPortfolioPermission.objects.filter(user=requestor).first().portfolio
|
requestor_org = UserPortfolioPermission.objects.filter(user=requestor).first().portfolio
|
||||||
|
|
||||||
member_of_a_different_org, member_of_this_org = self._get_org_membership(requestor_org, requested_email, requested_user)
|
member_of_a_different_org, member_of_this_org = self._get_org_membership(
|
||||||
|
requestor_org, requested_email, requested_user
|
||||||
|
)
|
||||||
|
|
||||||
# determine portfolio of the domain (code currently is looking at requestor's portfolio)
|
# determine portfolio of the domain (code currently is looking at requestor's portfolio)
|
||||||
# if requested_email/user is not member or invited member of this portfolio
|
# if requested_email/user is not member or invited member of this portfolio
|
||||||
|
@ -1299,7 +1302,12 @@ class DomainAddUserView(DomainFormBaseView):
|
||||||
def _handle_exceptions(self, exception, email):
|
def _handle_exceptions(self, exception, email):
|
||||||
"""Handle exceptions raised during the process."""
|
"""Handle exceptions raised during the process."""
|
||||||
if isinstance(exception, EmailSendingError):
|
if isinstance(exception, EmailSendingError):
|
||||||
logger.warning("Could not send email invitation to %s for domain %s (EmailSendingError)", email, self.object, exc_info=True)
|
logger.warning(
|
||||||
|
"Could not send email invitation to %s for domain %s (EmailSendingError)",
|
||||||
|
email,
|
||||||
|
self.object,
|
||||||
|
exc_info=True,
|
||||||
|
)
|
||||||
messages.warning(self.request, "Could not send email invitation.")
|
messages.warning(self.request, "Could not send email invitation.")
|
||||||
elif isinstance(exception, OutsideOrgMemberError):
|
elif isinstance(exception, OutsideOrgMemberError):
|
||||||
logger.warning(
|
logger.warning(
|
||||||
|
@ -1342,6 +1350,7 @@ class DomainAddUserView(DomainFormBaseView):
|
||||||
logger.warning("Could not send email invitation (Other Exception)", portfolio, exc_info=True)
|
logger.warning("Could not send email invitation (Other Exception)", portfolio, exc_info=True)
|
||||||
messages.warning(self.request, "Could not send email invitation.")
|
messages.warning(self.request, "Could not send email invitation.")
|
||||||
|
|
||||||
|
|
||||||
class DomainInvitationCancelView(SuccessMessageMixin, DomainInvitationPermissionCancelView):
|
class DomainInvitationCancelView(SuccessMessageMixin, DomainInvitationPermissionCancelView):
|
||||||
object: DomainInvitation
|
object: DomainInvitation
|
||||||
fields = []
|
fields = []
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import logging
|
import logging
|
||||||
from django.conf import settings
|
|
||||||
|
|
||||||
from django.http import Http404, JsonResponse
|
from django.http import Http404, JsonResponse
|
||||||
from django.shortcuts import get_object_or_404, redirect, render
|
from django.shortcuts import get_object_or_404, redirect, render
|
||||||
|
@ -577,14 +576,15 @@ class PortfolioAddMemberView(PortfolioMembersPermissionView, FormMixin):
|
||||||
self._handle_exceptions(e, portfolio, requested_email)
|
self._handle_exceptions(e, portfolio, requested_email)
|
||||||
return redirect(self.get_success_url())
|
return redirect(self.get_success_url())
|
||||||
|
|
||||||
def get_success_url(self):
|
|
||||||
"""Redirect to the members page."""
|
|
||||||
return reverse("members")
|
|
||||||
|
|
||||||
def _handle_exceptions(self, exception, portfolio, email):
|
def _handle_exceptions(self, exception, portfolio, email):
|
||||||
"""Handle exceptions raised during the process."""
|
"""Handle exceptions raised during the process."""
|
||||||
if isinstance(exception, EmailSendingError):
|
if isinstance(exception, EmailSendingError):
|
||||||
logger.warning("Could not sent email invitation to %s for portfolio %s (EmailSendingError)", email, portfolio, exc_info=True)
|
logger.warning(
|
||||||
|
"Could not sent email invitation to %s for portfolio %s (EmailSendingError)",
|
||||||
|
email,
|
||||||
|
portfolio,
|
||||||
|
exc_info=True,
|
||||||
|
)
|
||||||
messages.warning(self.request, "Could not send email invitation.")
|
messages.warning(self.request, "Could not send email invitation.")
|
||||||
elif isinstance(exception, MissingEmailError):
|
elif isinstance(exception, MissingEmailError):
|
||||||
messages.error(self.request, str(exception))
|
messages.error(self.request, str(exception))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue