mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-12 20:49:41 +02:00
Isolate user domain role create
This commit is contained in:
parent
e396534b38
commit
9425d4c35f
1 changed files with 22 additions and 16 deletions
|
@ -823,10 +823,6 @@ class DomainAddUserView(DomainFormBaseView):
|
||||||
email, requestor, requested_user
|
email, requestor, requested_user
|
||||||
):
|
):
|
||||||
add_success = False
|
add_success = False
|
||||||
messages.error(
|
|
||||||
self.request,
|
|
||||||
"That email is already a member of another .gov organization.",
|
|
||||||
)
|
|
||||||
raise OutsideOrgMemberError
|
raise OutsideOrgMemberError
|
||||||
|
|
||||||
# Check to see if an invite has already been sent
|
# Check to see if an invite has already been sent
|
||||||
|
@ -880,6 +876,18 @@ class DomainAddUserView(DomainFormBaseView):
|
||||||
DomainInvitation.objects.get_or_create(email=email_address, domain=self.object)
|
DomainInvitation.objects.get_or_create(email=email_address, domain=self.object)
|
||||||
return redirect(self.get_success_url())
|
return redirect(self.get_success_url())
|
||||||
|
|
||||||
|
def _create_user_domain_role(self, requested_user, requested_email, domain, role):
|
||||||
|
"""Assign a user to a domain as a specified role"""
|
||||||
|
try:
|
||||||
|
UserDomainRole.objects.create(
|
||||||
|
user=requested_user,
|
||||||
|
domain=self.object,
|
||||||
|
role=UserDomainRole.Roles.MANAGER,
|
||||||
|
)
|
||||||
|
messages.success(self.request, f"Added user {requested_email}.")
|
||||||
|
except IntegrityError:
|
||||||
|
messages.warning(self.request, f"{requested_email} is already a manager for this domain")
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
"""Add the specified user on this domain.
|
"""Add the specified user on this domain.
|
||||||
Throws EmailSendingError."""
|
Throws EmailSendingError."""
|
||||||
|
@ -890,7 +898,8 @@ class DomainAddUserView(DomainFormBaseView):
|
||||||
requested_user = User.objects.get(email=requested_email)
|
requested_user = User.objects.get(email=requested_email)
|
||||||
except User.DoesNotExist:
|
except User.DoesNotExist:
|
||||||
# no matching user, go make an invitation
|
# no matching user, go make an invitation
|
||||||
return self._make_invitation(requested_email, requestor)
|
requested_user = self._make_invitation(requested_email, requestor)
|
||||||
|
self._create_user_domain_role(requested_user, requested_email, self.object, UserDomainRole.Roles.MANAGER)
|
||||||
else:
|
else:
|
||||||
# if user already exists then just send an email
|
# if user already exists then just send an email
|
||||||
try:
|
try:
|
||||||
|
@ -910,6 +919,10 @@ class DomainAddUserView(DomainFormBaseView):
|
||||||
self.object,
|
self.object,
|
||||||
exc_info=True,
|
exc_info=True,
|
||||||
)
|
)
|
||||||
|
messages.error(
|
||||||
|
self.request,
|
||||||
|
"That email is already a member of another .gov organization.",
|
||||||
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.warn(
|
logger.warn(
|
||||||
"Could not send email invitation (Other Exception)",
|
"Could not send email invitation (Other Exception)",
|
||||||
|
@ -917,17 +930,10 @@ class DomainAddUserView(DomainFormBaseView):
|
||||||
exc_info=True,
|
exc_info=True,
|
||||||
)
|
)
|
||||||
messages.warning(self.request, "Could not send email invitation.")
|
messages.warning(self.request, "Could not send email invitation.")
|
||||||
|
|
||||||
try:
|
|
||||||
UserDomainRole.objects.create(
|
|
||||||
user=requested_user,
|
|
||||||
domain=self.object,
|
|
||||||
role=UserDomainRole.Roles.MANAGER,
|
|
||||||
)
|
|
||||||
except IntegrityError:
|
|
||||||
messages.warning(self.request, f"{requested_email} is already a manager for this domain")
|
|
||||||
else:
|
else:
|
||||||
messages.success(self.request, f"Added user {requested_email}.")
|
self._create_user_domain_role(
|
||||||
|
requested_user, requested_email, self.object, UserDomainRole.Roles.MANAGER
|
||||||
|
)
|
||||||
return redirect(self.get_success_url())
|
return redirect(self.get_success_url())
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue