mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	stream_settings: Add can_delete_own_message_group setting.
Adds per-channel `can_delete_own_message_group` setting for defining who can delete their own message in the channel.
This commit is contained in:
		@@ -91,6 +91,7 @@ class StreamDict(TypedDict, total=False):
 | 
			
		||||
    can_add_subscribers_group: UserGroup | None
 | 
			
		||||
    can_administer_channel_group: UserGroup | None
 | 
			
		||||
    can_delete_any_message_group: UserGroup | None
 | 
			
		||||
    can_delete_own_message_group: UserGroup | None
 | 
			
		||||
    can_move_messages_out_of_channel_group: UserGroup | None
 | 
			
		||||
    can_move_messages_within_channel_group: UserGroup | None
 | 
			
		||||
    can_send_message_group: UserGroup | None
 | 
			
		||||
@@ -350,6 +351,7 @@ def create_stream_if_needed(
 | 
			
		||||
    can_add_subscribers_group: UserGroup | None = None,
 | 
			
		||||
    can_administer_channel_group: UserGroup | None = None,
 | 
			
		||||
    can_delete_any_message_group: UserGroup | None = None,
 | 
			
		||||
    can_delete_own_message_group: UserGroup | None = None,
 | 
			
		||||
    can_move_messages_out_of_channel_group: UserGroup | None = None,
 | 
			
		||||
    can_move_messages_within_channel_group: UserGroup | None = None,
 | 
			
		||||
    can_send_message_group: UserGroup | None = None,
 | 
			
		||||
@@ -479,6 +481,7 @@ def create_streams_if_needed(
 | 
			
		||||
            can_add_subscribers_group=stream_dict.get("can_add_subscribers_group", None),
 | 
			
		||||
            can_administer_channel_group=stream_dict.get("can_administer_channel_group", None),
 | 
			
		||||
            can_delete_any_message_group=stream_dict.get("can_delete_any_message_group", None),
 | 
			
		||||
            can_delete_own_message_group=stream_dict.get("can_delete_own_message_group", None),
 | 
			
		||||
            can_move_messages_out_of_channel_group=stream_dict.get(
 | 
			
		||||
                "can_move_messages_out_of_channel_group", None
 | 
			
		||||
            ),
 | 
			
		||||
@@ -1172,6 +1175,15 @@ def can_delete_any_message_in_channel(user_profile: UserProfile, stream: Stream)
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def can_delete_own_message_in_channel(user_profile: UserProfile, stream: Stream) -> bool:
 | 
			
		||||
    return user_has_permission_for_group_setting(
 | 
			
		||||
        stream.can_delete_own_message_group_id,
 | 
			
		||||
        user_profile,
 | 
			
		||||
        Stream.stream_permission_group_settings["can_delete_own_message_group"],
 | 
			
		||||
        direct_member_only=False,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def can_move_messages_out_of_channel(user_profile: UserProfile, stream: Stream) -> bool:
 | 
			
		||||
    if user_profile.is_realm_admin:
 | 
			
		||||
        return True
 | 
			
		||||
@@ -1654,6 +1666,9 @@ def stream_to_dict(
 | 
			
		||||
    can_delete_any_message_group = get_group_setting_value_for_register_api(
 | 
			
		||||
        stream.can_delete_any_message_group_id, anonymous_group_membership
 | 
			
		||||
    )
 | 
			
		||||
    can_delete_own_message_group = get_group_setting_value_for_register_api(
 | 
			
		||||
        stream.can_delete_own_message_group_id, anonymous_group_membership
 | 
			
		||||
    )
 | 
			
		||||
    can_move_messages_out_of_channel_group = get_group_setting_value_for_register_api(
 | 
			
		||||
        stream.can_move_messages_out_of_channel_group_id, anonymous_group_membership
 | 
			
		||||
    )
 | 
			
		||||
@@ -1682,6 +1697,7 @@ def stream_to_dict(
 | 
			
		||||
        can_add_subscribers_group=can_add_subscribers_group,
 | 
			
		||||
        can_administer_channel_group=can_administer_channel_group,
 | 
			
		||||
        can_delete_any_message_group=can_delete_any_message_group,
 | 
			
		||||
        can_delete_own_message_group=can_delete_own_message_group,
 | 
			
		||||
        can_move_messages_out_of_channel_group=can_move_messages_out_of_channel_group,
 | 
			
		||||
        can_move_messages_within_channel_group=can_move_messages_within_channel_group,
 | 
			
		||||
        can_send_message_group=can_send_message_group,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user