diff --git a/frontend_tests/node_tests/browser_history.js b/frontend_tests/node_tests/browser_history.js
index e9a9a9825b..d5a5f547b3 100644
--- a/frontend_tests/node_tests/browser_history.js
+++ b/frontend_tests/node_tests/browser_history.js
@@ -66,7 +66,7 @@ test("update internal hash if required", ({override_rewire}) => {
assert.equal(stub.num_calls, 1);
});
-test("web public view hash restore", () => {
+test("web-public view hash restore", () => {
browser_history.update("#");
assert.equal(window.location.hash, "");
const new_hash = "#narrow/is/private";
diff --git a/static/js/browser_history.js b/static/js/browser_history.js
index db67011267..0111048a2f 100644
--- a/static/js/browser_history.js
+++ b/static/js/browser_history.js
@@ -31,7 +31,7 @@ export function set_hash_before_overlay(hash) {
}
export function update_web_public_hash(hash) {
- // Returns true if hash is web public compatible.
+ // Returns true if hash is web-public compatible.
if (hash_util.is_spectator_compatible(hash)) {
state.spectator_old_hash = hash;
return true;
diff --git a/static/js/stream_data.js b/static/js/stream_data.js
index ea8d13ec08..36370bbae8 100644
--- a/static/js/stream_data.js
+++ b/static/js/stream_data.js
@@ -105,7 +105,7 @@ const default_stream_ids = new Set();
export const stream_privacy_policy_values = {
web_public: {
code: "web-public",
- name: $t({defaultMessage: "Web public"}),
+ name: $t({defaultMessage: "Web-public"}),
description: $t({
defaultMessage:
"Organization members can join (guests must be invited by a subscriber); anyone on the Internet can view complete message history without creating an account",
diff --git a/static/templates/compose.hbs b/static/templates/compose.hbs
index dbd8cb03e3..858b5d5934 100644
--- a/static/templates/compose.hbs
+++ b/static/templates/compose.hbs
@@ -65,7 +65,7 @@
-
+
diff --git a/static/templates/login_to_access.hbs b/static/templates/login_to_access.hbs
index 86f54d6ee2..4fb3581d04 100644
--- a/static/templates/login_to_access.hbs
+++ b/static/templates/login_to_access.hbs
@@ -11,7 +11,7 @@
{{#tr}}
Since you are not logged in, you can only view messages in
- web public streams.
+ web-public streams.
{{#*inline "z-link"}}{{> @partial-block}}{{/inline}}
{{/tr}}
{{#tr}}
- This is a web public stream. Any member of the organization can join without an invitation and anyone on the internet can read the content published.
+ This is a web-public stream. Any member of the organization can join without an invitation and anyone on the internet can read the content published.
{{/tr}}
{{else}}
diff --git a/templates/zerver/api/changelog.md b/templates/zerver/api/changelog.md
index cfd1df729b..83a7424ee3 100644
--- a/templates/zerver/api/changelog.md
+++ b/templates/zerver/api/changelog.md
@@ -99,7 +99,7 @@ format used by the Zulip server that they are interacting with.
**Feature level 103**
* [`POST /register`](/api/register-queue): Added `create_web_public_stream_policy`
- policy for which users can create web public streams.
+ policy for which users can create web-public streams.
* [`PATCH /realm`]: Added support for updating `create_web_public_stream_policy`.
* [`POST /register`](/api/register-queue): Added `can_create_web_public_streams` boolean
field to the response.
diff --git a/templates/zerver/help/web-public-streams.md b/templates/zerver/help/web-public-streams.md
index d5c1fc3bef..18e29475ba 100644
--- a/templates/zerver/help/web-public-streams.md
+++ b/templates/zerver/help/web-public-streams.md
@@ -1,15 +1,15 @@
-# Web public streams
+# Web-public streams
!!! warn ""
This feature is under development, and is not yet available on Zulip Cloud.
-Administrators may enable the option to create **web public streams**.
-Web public streams can be viewed by anyone on the Internet without
+Administrators may enable the option to create **web-public streams**.
+Web-public streams can be viewed by anyone on the Internet without
creating an account in your organization.
For example, you can [link to a Zulip
-topic](/help/link-to-a-message-or-conversation) in a web public stream
+topic](/help/link-to-a-message-or-conversation) in a web-public stream
from a GitHub issue, a social media post, or a forum thread, and
anyone will be able to click the link and view the discussion in the
Zulip web application without needing to create an account.
@@ -17,24 +17,24 @@ Zulip web application without needing to create an account.
Users who wish to post content will need to create an account in order
to do so.
-Web public streams are indicated with a globe () icon.
-## Enabling web public streams in your organization
+## Enabling web-public streams in your organization
-Enabling web public streams makes it possible to create web public
+Enabling web-public streams makes it possible to create web-public
streams in your organization. It also makes certain information about
your organization accessible to anyone on the Internet via the Zulip
API (details below).
-To help protect closed organizations, creating web public streams is
+To help protect closed organizations, creating web-public streams is
disabled by default for all organizations.
-### Information that can be accessed via API when web public streams are enabled
+### Information that can be accessed via API when web-public streams are enabled
The following information about your organization can be accessed via the Zulip
-API if web public streams are enabled and there is currently at least one web
-public stream.
+API if web-public streams are enabled and there is currently at least one
+web-public stream.
* The organization's settings (linkifiers, custom emoji, permissions
settings, etc.)
@@ -42,13 +42,13 @@ public stream.
* Names of user groups and their membership
* Names and descriptions of streams
-Enabling web public streams is thus primarily recommended for open
+Enabling web-public streams is thus primarily recommended for open
communities such as open-source projects and research communities.
-### Enable or disable web public streams
+### Enable or disable web-public streams
!!! warn ""
- Self-hosted Zulip servers must enable support for web public streams by setting
+ Self-hosted Zulip servers must enable support for web-public streams by setting
`WEB_PUBLIC_STREAMS_ENABLED = True` in their [server
settings](https://zulip.readthedocs.io/en/latest/production/settings.html)
prior to proceeding.
@@ -58,50 +58,50 @@ communities such as open-source projects and research communities.
{settings_tab|organization-permissions}
2. Under **Stream permissions**, toggle the checkbox labeled "Allow
- creating web public streams (visible to anyone on the Internet)".
+ creating web-public streams (visible to anyone on the Internet)".
{end_tabs}
-### Manage who can create web public streams
+### Manage who can create web-public streams
{start_tabs}
{settings_tab|organization-permissions}
2. Under **Stream permissions**, make sure the checkbox labeled "Allow
- creating web public streams (visible to anyone on the Internet)" is
+ creating web-public streams (visible to anyone on the Internet)" is
checked.
-3. Under **Who can create web public streams?**, select the option you prefer.
+3. Under **Who can create web-public streams?**, select the option you prefer.
{end_tabs}
!!! tip ""
See [Managing abuse](#managing-abuse) to learn why only
- trusted roles like Moderators and Administrators can create web public streams.
+ trusted roles like Moderators and Administrators can create web-public streams.
-## Creating a web public stream
+## Creating a web-public stream
-To create a new web public stream, follow the [instructions for
+To create a new web-public stream, follow the [instructions for
creating stream](/help/create-a-stream#create-a-stream_1), selecting
-the **Web public** option for **Who can access the stream?**.
+the **Web-public** option for **Who can access the stream?**.
-To make an existing stream web public, follow the instructions to
+To make an existing stream web-public, follow the instructions to
[change the privacy of a
-stream](/help/change-the-privacy-of-a-stream), selecting the **Web
-public** option for **Who can access the stream?**.
+stream](/help/change-the-privacy-of-a-stream), selecting the
+**Web-public** option for **Who can access the stream?**.
## What can logged out visitors do?
-Logged out visitors can browse all content in web public streams,
+Logged out visitors can browse all content in web-public streams,
including using Zulip's [built-in search](/help/search-for-messages)
to find conversations. Logged out visitors can only access
-the web public streams in your organization, and the topics, messages
+the web-public streams in your organization, and the topics, messages
(including uploaded files) and emoji reactions in those streams.
They **cannot**:
-* View streams that are not configured as web public streams (or see
+* View streams that are not configured as web-public streams (or see
whether any such streams exist) without creating an account.
* Send messages.
* React with emoji.
@@ -124,8 +124,8 @@ detailed below.
### Information about users
Logged out visitors can see the following information about users who
-participate in web public streams. They do not see this information
-about users who do not participate in web public streams in the Zulip
+participate in web-public streams. They do not see this information
+about users who do not participate in web-public streams in the Zulip
UI, though they may access it via the Zulip API.
* Name
@@ -147,7 +147,7 @@ but not to logged out visitors:
and whether they have set themselves as unavailable.
* Detailed profile information, such as [custom profile
fields](/help/add-custom-profile-fields).
-* Which users are subscribed to which web public streams.
+* Which users are subscribed to which web-public streams.
## Managing abuse
@@ -156,12 +156,12 @@ that allows hosting files visible to the Internet is a potential target for bad
actors looking for places to distribute illegal or malicious content.
In order to protect Zulip organizations from
-bad actors, web public streams have a few limitations designed to make
+bad actors, web-public streams have a few limitations designed to make
Zulip an inconvenient target:
* Only users in trusted roles like Moderators can be given permission
- to create web public streams. This is intended to make it hard for
- an attacker to host malicious content in an unadvertised web public
+ to create web-public streams. This is intended to make it hard for
+ an attacker to host malicious content in an unadvertised web-public
stream in a legitimate organization.
* There are rate limits for unauthenticated access to uploaded
files, including viewing avatars and custom emoji.
@@ -177,7 +177,7 @@ with Zulip's Rules of Use.
## Caveats
-The web public visitors feature is not yet integrated with Zulip's
+The web-public visitors feature is not yet integrated with Zulip's
live-update system. As a result, a visitor will not see messages that are sent
while Zulip is open until they reload the browser window.
diff --git a/zerver/context_processors.py b/zerver/context_processors.py
index 50bc6198cc..3e0278e4ae 100644
--- a/zerver/context_processors.py
+++ b/zerver/context_processors.py
@@ -197,7 +197,7 @@ def login_context(request: HttpRequest) -> Dict[str, Any]:
else:
realm_description = get_realm_rendered_description(realm)
realm_invite_required = realm.invite_required
- # We offer web public access only if the realm has actual web
+ # We offer web-public access only if the realm has actual web
# public streams configured, in addition to having it enabled.
realm_web_public_access_enabled = realm.allow_web_public_streams_access()
diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py
index c8e6a0ad1b..c0dfe63e2a 100644
--- a/zerver/lib/actions.py
+++ b/zerver/lib/actions.py
@@ -3763,7 +3763,7 @@ def validate_user_access_to_subscribers_helper(
if stream_dict["is_web_public"]:
return
- # With the exception of web public streams, a guest must
+ # With the exception of web-public streams, a guest must
# be subscribed to a stream (even a public one) in order
# to see subscribers.
if user_profile.is_guest:
diff --git a/zerver/lib/message.py b/zerver/lib/message.py
index 887885085b..3a1ad5c5a2 100644
--- a/zerver/lib/message.py
+++ b/zerver/lib/message.py
@@ -717,7 +717,7 @@ def access_web_public_message(
message_id: int,
) -> Message:
"""Access control method for unauthenticated requests interacting
- with a message in web public streams.
+ with a message in web-public streams.
"""
# We throw a MissingAuthenticationError for all errors in this
diff --git a/zerver/lib/narrow.py b/zerver/lib/narrow.py
index 442babc149..427c751e6e 100644
--- a/zerver/lib/narrow.py
+++ b/zerver/lib/narrow.py
@@ -45,7 +45,7 @@ def is_web_public_narrow(narrow: Optional[Iterable[Dict[str, Any]]]) -> bool:
return False
for term in narrow:
- # Web public queries are only allowed for limited types of narrows.
+ # Web-public queries are only allowed for limited types of narrows.
# term == {'operator': 'streams', 'operand': 'web-public', 'negated': False}
if (
term["operator"] == "streams"
diff --git a/zerver/lib/streams.py b/zerver/lib/streams.py
index c271a85184..35f3c56f42 100644
--- a/zerver/lib/streams.py
+++ b/zerver/lib/streams.py
@@ -600,7 +600,7 @@ def filter_stream_authorization(
if stream.recipient_id in subscribed_recipient_ids:
continue
- # Web public streams are accessible even to guests
+ # Web-public streams are accessible even to guests
if stream.is_web_public:
continue
@@ -698,7 +698,7 @@ def list_to_streams(
if web_public_stream_requested:
if not user_profile.realm.web_public_streams_enabled():
- raise JsonableError(_("Web public streams are not enabled."))
+ raise JsonableError(_("Web-public streams are not enabled."))
if not user_profile.can_create_web_public_streams():
# We set create_web_public_stream_policy to allow only organization owners
# to create web-public streams, because of their sensitive nature.
diff --git a/zerver/models.py b/zerver/models.py
index 8a72a87a61..162df0f6b5 100644
--- a/zerver/models.py
+++ b/zerver/models.py
@@ -250,8 +250,8 @@ class Realm(models.Model):
default=2 ** 31 - 1,
)
- # Allow users to access web public streams without login. This
- # setting also controls API access of web public streams.
+ # Allow users to access web-public streams without login. This
+ # setting also controls API access of web-public streams.
enable_spectator_access: bool = models.BooleanField(default=False)
# Whether the organization has enabled inline image and URL previews.
@@ -924,7 +924,7 @@ class Realm(models.Model):
If any of the streams in the realm is web
public and `enable_spectator_access` and
settings.WEB_PUBLIC_STREAMS_ENABLED is True,
- then the Realm is web public.
+ then the Realm is web-public.
"""
return self.has_web_public_streams()
@@ -2245,7 +2245,7 @@ class Stream(models.Model):
"invite_only": False,
"history_public_to_subscribers": True,
"is_web_public": True,
- "policy_name": gettext_lazy("Web public"),
+ "policy_name": gettext_lazy("Web-public"),
},
"public": {
"invite_only": False,
diff --git a/zerver/openapi/zulip.yaml b/zerver/openapi/zulip.yaml
index 336ea50483..2b81dc081b 100644
--- a/zerver/openapi/zulip.yaml
+++ b/zerver/openapi/zulip.yaml
@@ -3605,7 +3605,7 @@ paths:
enable_spectator_access:
type: boolean
description: |
- Whether web public streams are enabled in this organization.
+ Whether web-public streams are enabled in this organization.
Can only be enabled if the `WEB_PUBLIC_STREAMS_ENABLED`
[server setting][server-settings] is enabled on the Zulip
@@ -6732,9 +6732,9 @@ paths:
in: query
description: |
This parameter determines whether any newly created streams will be
- web public streams.
+ web-public streams.
- Note that creating web public streams requires the
+ Note that creating web-public streams requires the
`WEB_PUBLIC_STREAMS_ENABLED` [server setting][server-settings]
to be enabled on the Zulip server in question, the organization
to have enabled the `enable_spectator_access` realm setting, and
@@ -10663,7 +10663,7 @@ paths:
description: |
Present if `realm` is present in `fetch_event_types`.
- Whether web public streams and related anonymous access APIs/features
+ Whether web-public streams and related anonymous access APIs/features
are enabled in this organization.
Can only be enabled if the `WEB_PUBLIC_STREAMS_ENABLED`
@@ -12663,7 +12663,7 @@ paths:
- name: include_web_public
in: query
description: |
- Include all web public streams.
+ Include all web-public streams.
schema:
type: boolean
default: false
@@ -12914,7 +12914,7 @@ paths:
description: |
Change whether the stream is a web-public stream.
- Note that creating web public streams requires the
+ Note that creating web-public streams requires the
`WEB_PUBLIC_STREAMS_ENABLED` [server setting][server-settings]
to be enabled on the Zulip server in question, the organization
to have enabled the `enable_spectator_access` realm setting, and
diff --git a/zerver/tests/test_digest.py b/zerver/tests/test_digest.py
index eae13115ae..8abaf327ba 100644
--- a/zerver/tests/test_digest.py
+++ b/zerver/tests/test_digest.py
@@ -425,7 +425,7 @@ class TestDigestEmailMessages(ZulipTestCase):
self.assertEqual(stream_count, 0)
self.assertEqual(stream_info["html"], [])
- # but they do if we make it web public
+ # but they do if we make it web-public
stream.is_web_public = True
stream.save()
diff --git a/zerver/tests/test_events.py b/zerver/tests/test_events.py
index c5604cfaad..0f6df19613 100644
--- a/zerver/tests/test_events.py
+++ b/zerver/tests/test_events.py
@@ -2588,7 +2588,7 @@ class SubscribeActionTest(BaseAction):
check_stream_update("events[0]", events[0])
check_message("events[1]", events[1])
- # Update stream privacy - make stream web public
+ # Update stream privacy - make stream web-public
action = lambda: do_change_stream_permission(
stream,
invite_only=False,
diff --git a/zerver/tests/test_home.py b/zerver/tests/test_home.py
index 329cf3648f..fdf110249e 100644
--- a/zerver/tests/test_home.py
+++ b/zerver/tests/test_home.py
@@ -360,7 +360,7 @@ class HomeTest(ZulipTestCase):
self.assertEqual(actual_keys, expected_keys)
self.assertEqual(self.client.session.get("prefers_web_public_view"), True)
- # Web public session key should clear once user is logged in
+ # Web-public session key should clear once user is logged in
self.login("hamlet")
self.client_get("/")
self.assertEqual(self.client.session.get("prefers_web_public_view"), None)
diff --git a/zerver/tests/test_subs.py b/zerver/tests/test_subs.py
index 8615a4606e..916b149321 100644
--- a/zerver/tests/test_subs.py
+++ b/zerver/tests/test_subs.py
@@ -292,7 +292,7 @@ class TestCreateStreams(ZulipTestCase):
"name": "publicstream",
"description": "Public stream with public history",
},
- {"name": "webpublicstream", "description": "Web public stream", "is_web_public": True},
+ {"name": "webpublicstream", "description": "Web-public stream", "is_web_public": True},
{
"name": "privatestream",
"description": "Private stream with non-public history",
@@ -724,7 +724,7 @@ class StreamAdminTest(ZulipTestCase):
with self.settings(WEB_PUBLIC_STREAMS_ENABLED=False):
self.assertFalse(user_profile.can_create_web_public_streams())
self.assertFalse(owner.can_create_web_public_streams())
- with self.assertRaisesRegex(JsonableError, "Web public streams are not enabled."):
+ with self.assertRaisesRegex(JsonableError, "Web-public streams are not enabled."):
list_to_streams(
streams_raw,
owner,
@@ -907,7 +907,7 @@ class StreamAdminTest(ZulipTestCase):
do_change_user_role(user_profile, UserProfile.ROLE_REALM_OWNER, acting_user=None)
with self.settings(WEB_PUBLIC_STREAMS_ENABLED=False):
result = self.client_patch(f"/json/streams/{stream_id}", params)
- self.assert_json_error(result, "Web public streams are not enabled.")
+ self.assert_json_error(result, "Web-public streams are not enabled.")
bad_params = {
"stream_name": orjson.dumps("test_stream").decode(),
@@ -942,7 +942,7 @@ class StreamAdminTest(ZulipTestCase):
self.assert_length(messages, 1)
expected_notification = (
f"@_**King Hamlet|{user_profile.id}** changed the [access permissions](/help/stream-permissions) "
- "for this stream from **Public** to **Web public**."
+ "for this stream from **Public** to **Web-public**."
)
self.assertEqual(messages[0].content, expected_notification)
@@ -2535,7 +2535,7 @@ class DefaultStreamTest(ZulipTestCase):
self.login_user(user_profile)
self.assertEqual(user_profile.role, UserProfile.ROLE_GUEST)
- # Get all the streams that Polonius has access to (subscribed + web public streams)
+ # Get all the streams that Polonius has access to (subscribed + web-public streams)
result = self.client_get("/json/streams", {"include_web_public": "true"})
streams = result.json()["streams"]
sub_info = gather_subscriptions_helper(user_profile)
@@ -4350,7 +4350,7 @@ class SubscriptionAPITest(ZulipTestCase):
public_stream = self.make_stream("public_stream", invite_only=False)
private_stream = self.make_stream("private_stream2", invite_only=True)
# This test should be added as soon as the subscription endpoint allows
- # guest users to subscribe to web public streams. Although they are already
+ # guest users to subscribe to web-public streams. Although they are already
# authorized, the decorator in "add_subscriptions_backend" still needs to be
# deleted.
#
@@ -5760,7 +5760,7 @@ class GetSubscribersTest(ZulipTestCase):
never_subscribed = gather_subscriptions_helper(guest_user, True).never_subscribed
# A guest user can only see never subscribed streams that are web-public.
- # For Polonius, the only web public stream that he is not subscribed at
+ # For Polonius, the only web-public stream that he is not subscribed at
# this point is Rome.
self.assert_length(never_subscribed, 1)
@@ -5894,7 +5894,7 @@ class AccessStreamTest(ZulipTestCase):
stream_name = "web_public_stream"
stream = self.make_stream(stream_name, guest_user_profile.realm, is_web_public=True)
- # Guest users have access to web public streams even if they aren't subscribed.
+ # Guest users have access to web-public streams even if they aren't subscribed.
(stream_ret, sub_ret) = access_stream_by_id(guest_user_profile, stream.id)
self.assertTrue(can_access_stream_history(guest_user_profile, stream))
assert sub_ret is None
diff --git a/zerver/views/streams.py b/zerver/views/streams.py
index f9560529be..c878f5325e 100644
--- a/zerver/views/streams.py
+++ b/zerver/views/streams.py
@@ -316,7 +316,7 @@ def update_stream_backend(
if is_web_public:
# Enforce restrictions on creating web-public streams.
if not user_profile.realm.web_public_streams_enabled():
- raise JsonableError(_("Web public streams are not enabled."))
+ raise JsonableError(_("Web-public streams are not enabled."))
if not user_profile.can_create_web_public_streams():
raise JsonableError(_("Insufficient permission"))
# Forbid parameter combinations that are inconsistent