def test_email_allowed_for_realm(self) -> None: realm1 = do_create_realm('testrealm1', 'Test Realm 1', restricted_to_domain=True) realm2 = do_create_realm('testrealm2', 'Test Realm 2', restricted_to_domain=True) realm_domain = RealmDomain.objects.create(realm=realm1, domain='test1.com', allow_subdomains=False) RealmDomain.objects.create(realm=realm2, domain='test2.test1.com', allow_subdomains=True) email_allowed_for_realm('*****@*****.**', realm1) with self.assertRaises(DomainNotAllowedForRealmError): email_allowed_for_realm('*****@*****.**', realm1) email_allowed_for_realm('*****@*****.**', realm2) email_allowed_for_realm('*****@*****.**', realm2) with self.assertRaises(DomainNotAllowedForRealmError): email_allowed_for_realm('*****@*****.**', realm2) do_change_realm_domain(realm_domain, True) email_allowed_for_realm('*****@*****.**', realm1) email_allowed_for_realm('*****@*****.**', realm1) with self.assertRaises(DomainNotAllowedForRealmError): email_allowed_for_realm('*****@*****.**', realm1)
def test_email_allowed_for_realm(self) -> None: realm1 = do_create_realm("testrealm1", "Test Realm 1", emails_restricted_to_domains=True) realm2 = do_create_realm("testrealm2", "Test Realm 2", emails_restricted_to_domains=True) realm_domain = RealmDomain.objects.create(realm=realm1, domain="test1.com", allow_subdomains=False) RealmDomain.objects.create(realm=realm2, domain="test2.test1.com", allow_subdomains=True) email_allowed_for_realm("*****@*****.**", realm1) with self.assertRaises(DomainNotAllowedForRealmError): email_allowed_for_realm("*****@*****.**", realm1) email_allowed_for_realm("*****@*****.**", realm2) email_allowed_for_realm("*****@*****.**", realm2) with self.assertRaises(DomainNotAllowedForRealmError): email_allowed_for_realm("*****@*****.**", realm2) do_change_realm_domain(realm_domain, True, acting_user=None) email_allowed_for_realm("*****@*****.**", realm1) email_allowed_for_realm("*****@*****.**", realm1) with self.assertRaises(DomainNotAllowedForRealmError): email_allowed_for_realm("*****@*****.**", realm1)
def test_email_allowed_for_realm(self) -> None: realm1 = do_create_realm('testrealm1', 'Test Realm 1', restricted_to_domain=True) realm2 = do_create_realm('testrealm2', 'Test Realm 2', restricted_to_domain=True) realm_domain = RealmDomain.objects.create(realm=realm1, domain='test1.com', allow_subdomains=False) RealmDomain.objects.create(realm=realm2, domain='test2.test1.com', allow_subdomains=True) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm1), True) self.assertEqual( email_allowed_for_realm('*****@*****.**', realm1), False) self.assertEqual( email_allowed_for_realm('*****@*****.**', realm2), True) self.assertEqual( email_allowed_for_realm('*****@*****.**', realm2), True) self.assertEqual( email_allowed_for_realm('*****@*****.**', realm2), False) do_change_realm_domain(realm_domain, True) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm1), True) self.assertEqual( email_allowed_for_realm('*****@*****.**', realm1), True) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm1), False)
def patch_realm_domain(request, user_profile, domain, allow_subdomains=REQ(validator=check_bool)): # type: (HttpRequest, UserProfile, Text, bool) -> (HttpResponse) try: realm_domain = RealmDomain.objects.get(realm=user_profile.realm, domain=domain) do_change_realm_domain(realm_domain, allow_subdomains) except RealmDomain.DoesNotExist: return json_error(_('No entry found for domain %(domain)s.' % {'domain': domain})) return json_success()
def patch_realm_domain(request: HttpRequest, user_profile: UserProfile, domain: Text, allow_subdomains: bool=REQ(validator=check_bool)) -> HttpResponse: try: realm_domain = RealmDomain.objects.get(realm=user_profile.realm, domain=domain) do_change_realm_domain(realm_domain, allow_subdomains) except RealmDomain.DoesNotExist: return json_error(_('No entry found for domain %(domain)s.' % {'domain': domain})) return json_success()
def patch_realm_domain(request: HttpRequest, user_profile: UserProfile, domain: str, allow_subdomains: bool=REQ(validator=check_bool)) -> HttpResponse: try: realm_domain = RealmDomain.objects.get(realm=user_profile.realm, domain=domain) do_change_realm_domain(realm_domain, allow_subdomains) except RealmDomain.DoesNotExist: return json_error(_('No entry found for domain {domain}.').format(domain=domain)) return json_success()
def patch_realm_domain( request: HttpRequest, user_profile: UserProfile, domain: str, allow_subdomains: bool = REQ(json_validator=check_bool), ) -> HttpResponse: try: realm_domain = RealmDomain.objects.get(realm=user_profile.realm, domain=domain) do_change_realm_domain(realm_domain, allow_subdomains, acting_user=user_profile) except RealmDomain.DoesNotExist: raise JsonableError( _("No entry found for domain {domain}.").format(domain=domain)) return json_success(request)
def test_email_allowed_for_realm(self) -> None: realm1 = do_create_realm('testrealm1', 'Test Realm 1', restricted_to_domain=True) realm2 = do_create_realm('testrealm2', 'Test Realm 2', restricted_to_domain=True) realm_domain = RealmDomain.objects.create(realm=realm1, domain='test1.com', allow_subdomains=False) RealmDomain.objects.create(realm=realm2, domain='test2.test1.com', allow_subdomains=True) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm1), True) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm1), False) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm2), True) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm2), True) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm2), False) do_change_realm_domain(realm_domain, True) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm1), True) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm1), True) self.assertEqual(email_allowed_for_realm('*****@*****.**', realm1), False)
def test_email_allowed_for_realm(self) -> None: realm1 = do_create_realm('testrealm1', 'Test Realm 1', restricted_to_domain=True) realm2 = do_create_realm('testrealm2', 'Test Realm 2', restricted_to_domain=True) realm_domain = RealmDomain.objects.create(realm=realm1, domain='test1.com', allow_subdomains=False) RealmDomain.objects.create(realm=realm2, domain='test2.test1.com', allow_subdomains=True) email_allowed_for_realm('*****@*****.**', realm1) with self.assertRaises(DomainNotAllowedForRealmError): email_allowed_for_realm('*****@*****.**', realm1) email_allowed_for_realm('*****@*****.**', realm2) email_allowed_for_realm('*****@*****.**', realm2) with self.assertRaises(DomainNotAllowedForRealmError): email_allowed_for_realm('*****@*****.**', realm2) do_change_realm_domain(realm_domain, True) email_allowed_for_realm('*****@*****.**', realm1) email_allowed_for_realm('*****@*****.**', realm1) with self.assertRaises(DomainNotAllowedForRealmError): email_allowed_for_realm('*****@*****.**', realm1)
def test_realm_domain_entries(self) -> None: user = self.example_user("iago") initial_domains = get_realm_domains(user.realm) now = timezone_now() realm_domain = do_add_realm_domain(user.realm, "zulip.org", False, acting_user=user) added_domain: Dict[str, Union[str, bool]] = { "domain": "zulip.org", "allow_subdomains": False, } expected_extra_data = { "realm_domains": initial_domains + [added_domain], "added_domain": added_domain, } self.assertEqual( RealmAuditLog.objects.filter( realm=user.realm, event_type=RealmAuditLog.REALM_DOMAIN_ADDED, event_time__gte=now, acting_user=user, extra_data=orjson.dumps(expected_extra_data).decode(), ).count(), 1, ) now = timezone_now() do_change_realm_domain(realm_domain, True, acting_user=user) changed_domain: Dict[str, Union[str, bool]] = { "domain": "zulip.org", "allow_subdomains": True, } expected_extra_data = { "realm_domains": initial_domains + [changed_domain], "changed_domain": changed_domain, } self.assertEqual( RealmAuditLog.objects.filter( realm=user.realm, event_type=RealmAuditLog.REALM_DOMAIN_CHANGED, event_time__gte=now, acting_user=user, extra_data=orjson.dumps(expected_extra_data).decode(), ).count(), 1, ) now = timezone_now() do_remove_realm_domain(realm_domain, acting_user=user) removed_domain = { "domain": "zulip.org", "allow_subdomains": True, } expected_extra_data = { "realm_domains": initial_domains, "removed_domain": removed_domain, } self.assertEqual( RealmAuditLog.objects.filter( realm=user.realm, event_type=RealmAuditLog.REALM_DOMAIN_REMOVED, event_time__gte=now, acting_user=user, extra_data=orjson.dumps(expected_extra_data).decode(), ).count(), 1, )