stream_setting: Add setting for who can move messages out of channel.

Adds `can_move_messages_out_of_channel_group` channel-level
permission for who can move messages out of the channel.

Fixes #34243.
This commit is contained in:
Vector73
2025-06-24 06:55:35 +00:00
committed by Tim Abbott
parent 703601a5d5
commit b612351e48
30 changed files with 460 additions and 20 deletions

View File

@@ -146,6 +146,9 @@ class Stream(models.Model):
can_administer_channel_group = models.ForeignKey(
UserGroup, on_delete=models.RESTRICT, related_name="+"
)
can_move_messages_out_of_channel_group = models.ForeignKey(
UserGroup, on_delete=models.RESTRICT, related_name="+"
)
can_move_messages_within_channel_group = models.ForeignKey(
UserGroup, on_delete=models.RESTRICT, related_name="+"
)
@@ -178,6 +181,11 @@ class Stream(models.Model):
allow_everyone_group=False,
default_group_name="stream_creator_or_nobody",
),
"can_move_messages_out_of_channel_group": GroupPermissionSetting(
allow_nobody_group=True,
allow_everyone_group=True,
default_group_name=SystemGroups.NOBODY,
),
"can_move_messages_within_channel_group": GroupPermissionSetting(
allow_nobody_group=True,
allow_everyone_group=True,
@@ -259,6 +267,7 @@ class Stream(models.Model):
"subscriber_count",
"can_add_subscribers_group_id",
"can_administer_channel_group_id",
"can_move_messages_out_of_channel_group_id",
"can_move_messages_within_channel_group_id",
"can_send_message_group_id",
"can_remove_subscribers_group_id",