diff --git a/zerver/lib/test_classes.py b/zerver/lib/test_classes.py index d9b3182996..da3867be6f 100644 --- a/zerver/lib/test_classes.py +++ b/zerver/lib/test_classes.py @@ -203,6 +203,7 @@ class ZulipTestCase(TestCase): AARON=u'AARON@zulip.com', aaron=u'aaron@zulip.com', ZOE=u'ZOE@zulip.com', + webhook_bot=u'webhook-bot@zulip.com', ) mit_user_map = dict( diff --git a/zerver/tests/test_signup.py b/zerver/tests/test_signup.py index 78cbbca592..e4c828bf89 100644 --- a/zerver/tests/test_signup.py +++ b/zerver/tests/test_signup.py @@ -40,6 +40,7 @@ from zerver.lib.send_email import send_email, send_future_email, FromAddress from zerver.lib.initial_password import initial_password from zerver.lib.actions import ( do_deactivate_realm, + do_deactivate_user, do_set_realm_property, add_new_user_history, ) @@ -1782,6 +1783,35 @@ class TestFindMyTeam(ZulipTestCase): from django.core.mail import outbox self.assertEqual(len(outbox), 1) + def test_find_team_deactivated_user(self): + # type: () -> None + do_deactivate_user(self.example_user("hamlet")) + data = {'emails': self.example_email("hamlet")} + result = self.client_post('/find_my_team/', data) + self.assertEqual(result.status_code, 302) + self.assertEqual(result.url, '/find_my_team/?emails=hamlet%40zulip.com') + from django.core.mail import outbox + self.assertEqual(len(outbox), 0) + + def test_find_team_deactivated_realm(self): + # type: () -> None + do_deactivate_realm(get_realm("zulip")) + data = {'emails': self.example_email("hamlet")} + result = self.client_post('/find_my_team/', data) + self.assertEqual(result.status_code, 302) + self.assertEqual(result.url, '/find_my_team/?emails=hamlet%40zulip.com') + from django.core.mail import outbox + self.assertEqual(len(outbox), 0) + + def test_find_team_bot_email(self): + # type: () -> None + data = {'emails': self.example_email("webhook_bot")} + result = self.client_post('/find_my_team/', data) + self.assertEqual(result.status_code, 302) + self.assertEqual(result.url, '/find_my_team/?emails=webhook-bot%40zulip.com') + from django.core.mail import outbox + self.assertEqual(len(outbox), 0) + def test_find_team_more_than_ten_emails(self): # type: () -> None data = {'emails': ','.join(['hamlet-{}@zulip.com'.format(i) for i in range(11)])} diff --git a/zerver/views/registration.py b/zerver/views/registration.py index d915192976..1a2f8ebd7a 100644 --- a/zerver/views/registration.py +++ b/zerver/views/registration.py @@ -380,7 +380,8 @@ def find_my_team(request): form = FindMyTeamForm(request.POST) if form.is_valid(): emails = form.cleaned_data['emails'] - for user_profile in UserProfile.objects.filter(email__in=emails): + for user_profile in UserProfile.objects.filter( + email__in=emails, is_active=True, is_bot=False, realm__deactivated=False): send_email('zerver/emails/find_team', to_user_id=user_profile.id, context={'user_profile': user_profile})