mirror of https://github.com/zulip/zulip.git
realm: Enable spectator access by default in development.
Enable spectator access for test `zulip` realm in developement setup. Add option in `do_create_realm` to configure `enable_spectator_access` field of `Realm`.
This commit is contained in:
parent
2a922409aa
commit
00d3b88257
|
@ -5067,6 +5067,7 @@ def do_create_realm(
|
||||||
org_type: Optional[int] = None,
|
org_type: Optional[int] = None,
|
||||||
date_created: Optional[datetime.datetime] = None,
|
date_created: Optional[datetime.datetime] = None,
|
||||||
is_demo_organization: Optional[bool] = False,
|
is_demo_organization: Optional[bool] = False,
|
||||||
|
enable_spectator_access: Optional[bool] = False,
|
||||||
) -> Realm:
|
) -> Realm:
|
||||||
if string_id == settings.SOCIAL_AUTH_SUBDOMAIN:
|
if string_id == settings.SOCIAL_AUTH_SUBDOMAIN:
|
||||||
raise AssertionError("Creating a realm on SOCIAL_AUTH_SUBDOMAIN is not allowed!")
|
raise AssertionError("Creating a realm on SOCIAL_AUTH_SUBDOMAIN is not allowed!")
|
||||||
|
@ -5089,6 +5090,8 @@ def do_create_realm(
|
||||||
kwargs["plan_type"] = plan_type
|
kwargs["plan_type"] = plan_type
|
||||||
if org_type is not None:
|
if org_type is not None:
|
||||||
kwargs["org_type"] = org_type
|
kwargs["org_type"] = org_type
|
||||||
|
if enable_spectator_access is not None:
|
||||||
|
kwargs["enable_spectator_access"] = enable_spectator_access
|
||||||
|
|
||||||
if date_created is not None:
|
if date_created is not None:
|
||||||
# The date_created parameter is intended only for use by test
|
# The date_created parameter is intended only for use by test
|
||||||
|
|
|
@ -313,11 +313,21 @@ class HomeTest(ZulipTestCase):
|
||||||
self.assertEqual(result.url, "/login/")
|
self.assertEqual(result.url, "/login/")
|
||||||
|
|
||||||
# Tell server that user wants to login anonymously
|
# Tell server that user wants to login anonymously
|
||||||
# Redirects to load webapp. Since Realm.enable_spectator_access
|
# Redirects to load webapp.
|
||||||
# is False, the login should fail.
|
|
||||||
realm = get_realm("zulip")
|
realm = get_realm("zulip")
|
||||||
result = self.client_post("/", {"prefers_web_public_view": "true"})
|
result = self.client_post("/", {"prefers_web_public_view": "true"})
|
||||||
self.assertEqual(self.client.session.get("prefers_web_public_view"), None)
|
self.assertEqual(self.client.session.get("prefers_web_public_view"), True)
|
||||||
|
self.assertEqual(realm.enable_spectator_access, True)
|
||||||
|
self.assertEqual(result.status_code, 302)
|
||||||
|
self.assertEqual(result.url, "http://zulip.testserver")
|
||||||
|
|
||||||
|
# Disable spectator login. Since Realm.enable_spectator_access
|
||||||
|
# is False, the login should fail.
|
||||||
|
realm.enable_spectator_access = False
|
||||||
|
realm.save()
|
||||||
|
|
||||||
|
result = self.client_post("/", {"prefers_web_public_view": "true"})
|
||||||
|
self.assertEqual(self.client.session.get("prefers_web_public_view"), True)
|
||||||
self.assertEqual(realm.enable_spectator_access, False)
|
self.assertEqual(realm.enable_spectator_access, False)
|
||||||
self.assertEqual(result.status_code, 302)
|
self.assertEqual(result.status_code, 302)
|
||||||
self.assertEqual(result.url, "/login/")
|
self.assertEqual(result.url, "/login/")
|
||||||
|
@ -352,9 +362,6 @@ class HomeTest(ZulipTestCase):
|
||||||
self.client_get("/")
|
self.client_get("/")
|
||||||
self.assertEqual(self.client.session.get("prefers_web_public_view"), None)
|
self.assertEqual(self.client.session.get("prefers_web_public_view"), None)
|
||||||
|
|
||||||
realm.enable_spectator_access = False
|
|
||||||
realm.save()
|
|
||||||
|
|
||||||
def test_home_under_2fa_without_otp_device(self) -> None:
|
def test_home_under_2fa_without_otp_device(self) -> None:
|
||||||
with self.settings(TWO_FACTOR_AUTHENTICATION_ENABLED=True):
|
with self.settings(TWO_FACTOR_AUTHENTICATION_ENABLED=True):
|
||||||
self.login("iago")
|
self.login("iago")
|
||||||
|
|
|
@ -93,6 +93,13 @@ class RealmTest(ZulipTestCase):
|
||||||
self.assertEqual(realm.user_group_edit_policy, Realm.POLICY_MODERATORS_ONLY)
|
self.assertEqual(realm.user_group_edit_policy, Realm.POLICY_MODERATORS_ONLY)
|
||||||
self.assertEqual(realm.invite_to_stream_policy, Realm.POLICY_MODERATORS_ONLY)
|
self.assertEqual(realm.invite_to_stream_policy, Realm.POLICY_MODERATORS_ONLY)
|
||||||
|
|
||||||
|
def test_realm_enable_spectator_access(self) -> None:
|
||||||
|
realm = do_create_realm("test_web_public_true", "Foo", enable_spectator_access=True)
|
||||||
|
self.assertEqual(realm.enable_spectator_access, True)
|
||||||
|
|
||||||
|
realm = do_create_realm("test_web_public_false", "Boo", enable_spectator_access=False)
|
||||||
|
self.assertEqual(realm.enable_spectator_access, False)
|
||||||
|
|
||||||
def test_do_set_realm_name_caching(self) -> None:
|
def test_do_set_realm_name_caching(self) -> None:
|
||||||
"""The main complicated thing about setting realm names is fighting the
|
"""The main complicated thing about setting realm names is fighting the
|
||||||
cache, and we start by populating the cache for Hamlet, and we end
|
cache, and we start by populating the cache for Hamlet, and we end
|
||||||
|
|
|
@ -314,6 +314,7 @@ class Command(BaseCommand):
|
||||||
invite_required=False,
|
invite_required=False,
|
||||||
plan_type=Realm.PLAN_TYPE_SELF_HOSTED,
|
plan_type=Realm.PLAN_TYPE_SELF_HOSTED,
|
||||||
org_type=Realm.ORG_TYPES["business"]["id"],
|
org_type=Realm.ORG_TYPES["business"]["id"],
|
||||||
|
enable_spectator_access=True,
|
||||||
)
|
)
|
||||||
RealmDomain.objects.create(realm=zulip_realm, domain="zulip.com")
|
RealmDomain.objects.create(realm=zulip_realm, domain="zulip.com")
|
||||||
assert zulip_realm.notifications_stream is not None
|
assert zulip_realm.notifications_stream is not None
|
||||||
|
|
Loading…
Reference in New Issue