mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	streams: Add group based setting to control posting permissions.
This commit is contained in:
		@@ -78,6 +78,7 @@ class StreamDict(TypedDict, total=False):
 | 
			
		||||
    history_public_to_subscribers: bool | None
 | 
			
		||||
    message_retention_days: int | None
 | 
			
		||||
    can_administer_channel_group: UserGroup | None
 | 
			
		||||
    can_send_message_group: UserGroup | None
 | 
			
		||||
    can_remove_subscribers_group: UserGroup | None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -186,6 +187,7 @@ def create_stream_if_needed(
 | 
			
		||||
    stream_description: str = "",
 | 
			
		||||
    message_retention_days: int | None = None,
 | 
			
		||||
    can_administer_channel_group: UserGroup | None = None,
 | 
			
		||||
    can_send_message_group: UserGroup | None = None,
 | 
			
		||||
    can_remove_subscribers_group: UserGroup | None = None,
 | 
			
		||||
    acting_user: UserProfile | None = None,
 | 
			
		||||
    setting_groups_dict: dict[int, int | AnonymousSettingGroupDict] | None = None,
 | 
			
		||||
@@ -291,6 +293,7 @@ def create_streams_if_needed(
 | 
			
		||||
            stream_description=stream_dict.get("description", ""),
 | 
			
		||||
            message_retention_days=stream_dict.get("message_retention_days", None),
 | 
			
		||||
            can_administer_channel_group=stream_dict.get("can_administer_channel_group", None),
 | 
			
		||||
            can_send_message_group=stream_dict.get("can_send_message_group", None),
 | 
			
		||||
            can_remove_subscribers_group=stream_dict.get("can_remove_subscribers_group", None),
 | 
			
		||||
            acting_user=acting_user,
 | 
			
		||||
            setting_groups_dict=setting_groups_dict,
 | 
			
		||||
@@ -982,11 +985,13 @@ def stream_to_dict(
 | 
			
		||||
 | 
			
		||||
    if setting_groups_dict is not None:
 | 
			
		||||
        can_administer_channel_group = setting_groups_dict[stream.can_administer_channel_group_id]
 | 
			
		||||
        can_send_message_group = setting_groups_dict[stream.can_send_message_group_id]
 | 
			
		||||
        can_remove_subscribers_group = setting_groups_dict[stream.can_remove_subscribers_group_id]
 | 
			
		||||
    else:
 | 
			
		||||
        can_administer_channel_group = get_group_setting_value_for_api(
 | 
			
		||||
            stream.can_administer_channel_group
 | 
			
		||||
        )
 | 
			
		||||
        can_send_message_group = get_group_setting_value_for_api(stream.can_send_message_group)
 | 
			
		||||
        can_remove_subscribers_group = get_group_setting_value_for_api(
 | 
			
		||||
            stream.can_remove_subscribers_group
 | 
			
		||||
        )
 | 
			
		||||
@@ -994,6 +999,7 @@ def stream_to_dict(
 | 
			
		||||
    return APIStreamDict(
 | 
			
		||||
        is_archived=stream.deactivated,
 | 
			
		||||
        can_administer_channel_group=can_administer_channel_group,
 | 
			
		||||
        can_send_message_group=can_send_message_group,
 | 
			
		||||
        can_remove_subscribers_group=can_remove_subscribers_group,
 | 
			
		||||
        creator_id=stream.creator_id,
 | 
			
		||||
        date_created=datetime_to_timestamp(stream.date_created),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user