Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
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()
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
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()
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
    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)
Ejemplo n.º 10
0
    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,
        )