Browse Source

fix(hybridcloud) Don't send None to user_service.get() (#67618)

Fixes SENTRY-32ZY
Mark Story 11 months ago
parent
commit
4d2f310a55

+ 2 - 0
src/sentry/models/organizationaccessrequest.py

@@ -30,6 +30,8 @@ class OrganizationAccessRequest(Model):
         from sentry.utils.email import MessageBuilder
 
         organization = self.team.organization
+        if not self.member.user_id:
+            return
         user = user_service.get_user(user_id=self.member.user_id)
         if user is None:
             return

+ 18 - 0
tests/sentry/models/test_organizationaccessrequest.py

@@ -43,6 +43,24 @@ class SendRequestEmailTest(TestCase):
         assert len(mail.outbox) == 2, [m.subject for m in mail.outbox]
         assert sorted(m.to[0] for m in mail.outbox) == sorted([owner.email, team_admin.email])
 
+    @with_feature("organizations:customer-domains")
+    def test_sends_no_email_to_invited_member(self):
+        owner = self.create_user("owner@example.com")
+
+        org = self.create_organization(owner=owner)
+        team = self.create_team(organization=org)
+        self.create_team_membership(team=team, user=owner)
+
+        requesting_member = self.create_member(
+            organization=org, role="member", email="joe@example.com"
+        )
+        request = OrganizationAccessRequest.objects.create(member=requesting_member, team=team)
+
+        with self.tasks():
+            request.send_request_email()
+
+        assert len(mail.outbox) == 0
+
     @with_feature("organizations:customer-domains")
     def test_sends_email_with_link(self):
         owner = self.create_user("owner@example.com")