mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	register: Add can_create_web_public_streams to register response.
This commit is contained in:
		@@ -16,6 +16,8 @@ below features are supported.
 | 
			
		||||
* [`POST /register`](/api/register-queue): Added `create_web_public_stream_policy`
 | 
			
		||||
  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.
 | 
			
		||||
 | 
			
		||||
**Feature level 102**
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ DESKTOP_WARNING_VERSION = "5.4.3"
 | 
			
		||||
# Changes should be accompanied by documentation explaining what the
 | 
			
		||||
# new level means in templates/zerver/api/changelog.md, as well as
 | 
			
		||||
# "**Changes**" entries in the endpoint's documentation in `zulip.yaml`.
 | 
			
		||||
API_FEATURE_LEVEL = 102
 | 
			
		||||
API_FEATURE_LEVEL = 103
 | 
			
		||||
 | 
			
		||||
# Bump the minor PROVISION_VERSION to indicate that folks should provision
 | 
			
		||||
# only when going from an old version of the code to a newer version. Bump
 | 
			
		||||
 
 | 
			
		||||
@@ -417,8 +417,11 @@ def fetch_initial_state_data(
 | 
			
		||||
        # 102); we can remove this once we no longer need to support
 | 
			
		||||
        # legacy mobile app versions that read the old property.
 | 
			
		||||
        state["can_create_streams"] = (
 | 
			
		||||
            settings_user.can_create_private_streams() or settings_user.can_create_public_streams()
 | 
			
		||||
            settings_user.can_create_private_streams()
 | 
			
		||||
            or settings_user.can_create_public_streams()
 | 
			
		||||
            or settings_user.can_create_web_public_streams()
 | 
			
		||||
        )
 | 
			
		||||
        state["can_create_web_public_streams"] = settings_user.can_create_web_public_streams()
 | 
			
		||||
        state["can_subscribe_other_users"] = settings_user.can_subscribe_other_users()
 | 
			
		||||
        state["can_invite_others_to_realm"] = settings_user.can_invite_others_to_realm()
 | 
			
		||||
        state["is_admin"] = settings_user.is_realm_admin
 | 
			
		||||
@@ -752,8 +755,13 @@ def apply_event(
 | 
			
		||||
                    # Recompute properties based on is_admin/is_guest
 | 
			
		||||
                    state["can_create_private_streams"] = user_profile.can_create_private_streams()
 | 
			
		||||
                    state["can_create_public_streams"] = user_profile.can_create_public_streams()
 | 
			
		||||
                    state[
 | 
			
		||||
                        "can_create_web_public_streams"
 | 
			
		||||
                    ] = user_profile.can_create_web_public_streams()
 | 
			
		||||
                    state["can_create_streams"] = (
 | 
			
		||||
                        state["can_create_private_streams"] or state["can_create_public_streams"]
 | 
			
		||||
                        state["can_create_private_streams"]
 | 
			
		||||
                        or state["can_create_public_streams"]
 | 
			
		||||
                        or state["can_create_web_public_streams"]
 | 
			
		||||
                    )
 | 
			
		||||
                    state["can_subscribe_other_users"] = user_profile.can_subscribe_other_users()
 | 
			
		||||
                    state["can_invite_others_to_realm"] = user_profile.can_invite_others_to_realm()
 | 
			
		||||
@@ -942,6 +950,7 @@ def apply_event(
 | 
			
		||||
            policy_permission_dict = {
 | 
			
		||||
                "create_public_stream_policy": "can_create_public_streams",
 | 
			
		||||
                "create_private_stream_policy": "can_create_private_streams",
 | 
			
		||||
                "create_web_public_stream_policy": "can_create_web_public_streams",
 | 
			
		||||
                "invite_to_stream_policy": "can_subscribe_other_users",
 | 
			
		||||
                "invite_to_realm_policy": "can_invite_others_to_realm",
 | 
			
		||||
            }
 | 
			
		||||
@@ -962,7 +971,9 @@ def apply_event(
 | 
			
		||||
 | 
			
		||||
            # Finally, we need to recompute this value from its inputs.
 | 
			
		||||
            state["can_create_streams"] = (
 | 
			
		||||
                state["can_create_private_streams"] or state["can_create_public_streams"]
 | 
			
		||||
                state["can_create_private_streams"]
 | 
			
		||||
                or state["can_create_public_streams"]
 | 
			
		||||
                or state["can_create_web_public_streams"]
 | 
			
		||||
            )
 | 
			
		||||
        elif event["op"] == "update_dict":
 | 
			
		||||
            for key, value in event["data"].items():
 | 
			
		||||
 
 | 
			
		||||
@@ -11462,6 +11462,18 @@ paths:
 | 
			
		||||
                          **Changes**: New in Zulip 5.0 (feature level 102). In older
 | 
			
		||||
                          versions, the deprecated `can_create_streams` property should be
 | 
			
		||||
                          used to determine whether the user can create private streams.
 | 
			
		||||
                      can_create_web_public_streams:
 | 
			
		||||
                        type: boolean
 | 
			
		||||
                        description: |
 | 
			
		||||
                          Present if `realm_user` is present in `fetch_event_types`.
 | 
			
		||||
 | 
			
		||||
                          Whether the current user is allowed to create public streams with
 | 
			
		||||
                          the organization's [stream creation policy](/help/configure-who-can-create-streams).
 | 
			
		||||
 | 
			
		||||
                          Note that this will be false if the Zulip server does not have the
 | 
			
		||||
                          `WEB_PUBLIC_STREAMS_ENABLED` setting enabled.
 | 
			
		||||
 | 
			
		||||
                          **Changes**: New in Zulip 5.0 (feature level 103).
 | 
			
		||||
                      can_subscribe_other_users:
 | 
			
		||||
                        type: boolean
 | 
			
		||||
                        description: |
 | 
			
		||||
 
 | 
			
		||||
@@ -53,6 +53,7 @@ class HomeTest(ZulipTestCase):
 | 
			
		||||
        "can_create_private_streams",
 | 
			
		||||
        "can_create_public_streams",
 | 
			
		||||
        "can_create_streams",
 | 
			
		||||
        "can_create_web_public_streams",
 | 
			
		||||
        "can_invite_others_to_realm",
 | 
			
		||||
        "can_subscribe_other_users",
 | 
			
		||||
        "corporate_enabled",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user