Debug email bug

This commit is contained in:
Erin Song 2024-10-08 15:39:38 -07:00
parent 2f2c4e1951
commit 6a01e5646d
No known key found for this signature in database

View file

@ -876,39 +876,26 @@ 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."""
requested_email = form.cleaned_data["email"] requested_email = form.cleaned_data["email"]
requestor = self.request.user requestor = self.request.user
email_success = False
# look up a user with that email # look up a user with that email
try: try:
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
requested_user = self._make_invitation(requested_email, requestor) email_success = True
self._create_user_domain_role(requested_user, requested_email, self.object, UserDomainRole.Roles.MANAGER) return self._make_invitation(requested_email, requestor)
else: else:
# if user already exists then just send an email # if user already exists then just send an email
try: try:
self._send_domain_invitation_email( self._send_domain_invitation_email(
requested_email, requestor, requested_user=requested_user, add_success=False requested_email, requestor, requested_user=requested_user, add_success=False
) )
self._create_user_domain_role( email_success = True
requested_user, requested_email, self.object, UserDomainRole.Roles.MANAGER
)
except EmailSendingError: except EmailSendingError:
logger.warn( logger.warn(
"Could not send email invitation (EmailSendingError)", "Could not send email invitation (EmailSendingError)",
@ -933,6 +920,17 @@ 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.")
if email_success:
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")
return redirect(self.get_success_url()) return redirect(self.get_success_url())