Browse Source

ref(hc): Removing redundant signal handling (#52424)

This is now handled cross silo here
https://github.com/getsentry/sentry/blob/master/src/sentry/api/invite_helper.py#L258
so is no longer necessary as a special case.
Zach Collins 1 year ago
parent
commit
4fadd22a62
2 changed files with 24 additions and 22 deletions
  1. 0 18
      src/sentry/receivers/outbox/region.py
  2. 24 4
      tests/sentry/receivers/test_onboarding.py

+ 0 - 18
src/sentry/receivers/outbox/region.py

@@ -11,7 +11,6 @@ from typing import Any
 
 from django.dispatch import receiver
 
-from sentry import roles
 from sentry.models import (
     Organization,
     OrganizationMember,
@@ -31,8 +30,6 @@ from sentry.services.hybrid_cloud.organizationmember_mapping import (
     RpcOrganizationMemberMappingUpdate,
     organizationmember_mapping_service,
 )
-from sentry.services.hybrid_cloud.user.service import user_service
-from sentry.signals import member_joined
 from sentry.types.region import get_local_region
 
 
@@ -74,8 +71,6 @@ def process_organization_member_updates(
 
     rpc_org_member_update = RpcOrganizationMemberMappingUpdate.from_orm(org_member)
 
-    maybe_join_org(org_member)
-
     organizationmember_mapping_service.upsert_mapping(
         organizationmember_id=org_member.id,
         organization_id=shard_identifier,
@@ -107,19 +102,6 @@ def process_project_updates(object_identifier: int, **kwds: Any):
     proj
 
 
-def maybe_join_org(org_member: OrganizationMember):
-    if org_member.user_id is not None:
-        user_org_ids = {o.id for o in user_service.get_organizations(user_id=org_member.user_id)}
-        if org_member.organization_id not in user_org_ids:
-            if org_member.role != roles.get_top_dog().id:
-                member_joined.send_robust(
-                    sender=None,
-                    organization_member_id=org_member.id,
-                    organization_id=org_member.organization_id,
-                    user_id=org_member.user_id,
-                )
-
-
 @receiver(process_region_outbox, sender=OutboxCategory.ORGANIZATION_MAPPING_CUSTOMER_ID_UPDATE)
 def process_organization_mapping_customer_id_update(
     object_identifier: int, payload: Any, **kwds: Any

+ 24 - 4
tests/sentry/receivers/test_onboarding.py

@@ -5,6 +5,7 @@ import pytest
 import pytz
 from django.utils import timezone
 
+from sentry.api.invite_helper import ApiInviteHelper
 from sentry.models import (
     Integration,
     OnboardingTask,
@@ -14,6 +15,7 @@ from sentry.models import (
     Rule,
 )
 from sentry.plugins.bases import IssueTrackingPlugin
+from sentry.services.hybrid_cloud.organization import organization_service
 from sentry.signals import (
     alert_rule_created,
     event_processed,
@@ -268,9 +270,16 @@ class OrganizationOnboardingTaskTest(TestCase):
                 status=OnboardingTaskStatus.COMPLETE,
             )
 
-        self.create_member(
+        om = self.create_member(
             organization=self.organization, teams=[self.team], email="someemail@example.com"
         )
+        helper = ApiInviteHelper(
+            self.make_request(user=user),
+            organization_service.get_invite_by_id(
+                organization_member_id=om.id, organization_id=om.organization_id
+            ),
+            None,
+        )
 
         with pytest.raises(OrganizationOnboardingTask.DoesNotExist):
             OrganizationOnboardingTask.objects.get(
@@ -279,7 +288,7 @@ class OrganizationOnboardingTaskTest(TestCase):
                 status=OnboardingTaskStatus.COMPLETE,
             )
 
-        member = self.create_member(organization=self.organization, teams=[self.team], user=user)
+        helper.accept_invite(user=user)
 
         task = OrganizationOnboardingTask.objects.get(
             organization=self.organization,
@@ -289,14 +298,25 @@ class OrganizationOnboardingTaskTest(TestCase):
         assert task is not None
 
         user2 = self.create_user(email="test@example.com")
-        self.create_member(organization=self.organization, teams=[self.team], user=user2)
+        om2 = self.create_member(
+            organization=self.organization, teams=[self.team], email="blah@example.com"
+        )
+        helper = ApiInviteHelper(
+            self.make_request(user=user2),
+            organization_service.get_invite_by_id(
+                organization_member_id=om2.id, organization_id=om2.organization_id
+            ),
+            None,
+        )
+
+        helper.accept_invite(user=user2)
 
         task = OrganizationOnboardingTask.objects.get(
             organization=self.organization,
             task=OnboardingTask.INVITE_MEMBER,
             status=OnboardingTaskStatus.COMPLETE,
         )
-        assert task.data["invited_member_id"] == member.id
+        assert task.data["invited_member_id"] == om.id
 
     def test_issue_tracker_onboarding(self):
         plugin_enabled.send(