streams: Add can_administer_channel_group as a stream setting.

We have not added current user as the default for new channels in this
commit.
This commit is contained in:
Shubham Padia
2024-11-18 09:10:37 +00:00
committed by Tim Abbott
parent 44b498f96b
commit eb943d54a9
17 changed files with 472 additions and 15 deletions

View File

@@ -76,6 +76,7 @@ class StreamDict(TypedDict, total=False):
stream_post_policy: int
history_public_to_subscribers: bool | None
message_retention_days: int | None
can_administer_channel_group: UserGroup | None
can_remove_subscribers_group: UserGroup | None
@@ -169,6 +170,7 @@ def create_stream_if_needed(
history_public_to_subscribers: bool | None = None,
stream_description: str = "",
message_retention_days: int | None = None,
can_administer_channel_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,
@@ -273,6 +275,7 @@ def create_streams_if_needed(
history_public_to_subscribers=stream_dict.get("history_public_to_subscribers"),
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_remove_subscribers_group=stream_dict.get("can_remove_subscribers_group", None),
acting_user=acting_user,
setting_groups_dict=setting_groups_dict,
@@ -950,14 +953,19 @@ def stream_to_dict(
stream_weekly_traffic = None
if setting_groups_dict is not None:
can_administer_channel_group = setting_groups_dict[stream.can_administer_channel_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_remove_subscribers_group = get_group_setting_value_for_api(
stream.can_remove_subscribers_group
)
return APIStreamDict(
is_archived=stream.deactivated,
can_administer_channel_group=can_administer_channel_group,
can_remove_subscribers_group=can_remove_subscribers_group,
creator_id=stream.creator_id,
date_created=datetime_to_timestamp(stream.date_created),