From 8400c2466548794ccb1aafd0cd2ee3da182045fa Mon Sep 17 00:00:00 2001 From: Sahil Batra Date: Mon, 23 Jun 2025 20:07:11 +0530 Subject: [PATCH] groups: Make two fields of GroupPermissionSetting optional. This commit makes require_system_group and allow_internet_group fields of GroupPermissionSetting optional with default value of False. "allow_internet_group" is False for all of the settings and "require_system_group" is True for only two settings, so it is better to not having to repeat them for every setting. --- zerver/lib/types.py | 4 ++-- zerver/models/groups.py | 12 ----------- zerver/models/realms.py | 44 ---------------------------------------- zerver/models/streams.py | 10 --------- 4 files changed, 2 insertions(+), 68 deletions(-) diff --git a/zerver/lib/types.py b/zerver/lib/types.py index 59fb642586..2733021f40 100644 --- a/zerver/lib/types.py +++ b/zerver/lib/types.py @@ -343,11 +343,11 @@ class RealmPlaygroundDict(TypedDict): @dataclass class GroupPermissionSetting: - require_system_group: bool - allow_internet_group: bool allow_nobody_group: bool allow_everyone_group: bool default_group_name: str + require_system_group: bool = False + allow_internet_group: bool = False default_for_system_groups: str | None = None allowed_system_groups: list[str] = field(default_factory=list) diff --git a/zerver/models/groups.py b/zerver/models/groups.py index 635c56ec22..fa9a9fdef9 100644 --- a/zerver/models/groups.py +++ b/zerver/models/groups.py @@ -114,48 +114,36 @@ class NamedUserGroup(UserGroup): GROUP_PERMISSION_SETTINGS = { "can_add_members_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name="group_creator", default_for_system_groups=SystemGroups.NOBODY, ), "can_join_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.NOBODY, default_for_system_groups=SystemGroups.NOBODY, ), "can_leave_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.EVERYONE, default_for_system_groups=SystemGroups.NOBODY, ), "can_manage_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name="group_creator", default_for_system_groups=SystemGroups.NOBODY, ), "can_mention_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.EVERYONE, default_for_system_groups=SystemGroups.NOBODY, ), "can_remove_members_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.NOBODY, diff --git a/zerver/models/realms.py b/zerver/models/realms.py index e04416cc2f..679e9092db 100644 --- a/zerver/models/realms.py +++ b/zerver/models/realms.py @@ -731,15 +731,12 @@ class Realm(models.Model): REALM_PERMISSION_GROUP_SETTINGS: dict[str, GroupPermissionSetting] = dict( create_multiuse_invite_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.ADMINISTRATORS, ), can_access_all_users_group=GroupPermissionSetting( require_system_group=True, - allow_internet_group=False, allow_nobody_group=False, allow_everyone_group=True, default_group_name=SystemGroups.EVERYONE, @@ -748,50 +745,37 @@ class Realm(models.Model): allowed_system_groups=[SystemGroups.EVERYONE, SystemGroups.MEMBERS], ), can_add_subscribers_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.MEMBERS, ), can_add_custom_emoji_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.MEMBERS, ), can_create_bots_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.MEMBERS, ), can_create_groups=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.MEMBERS, ), can_create_public_channel_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.MEMBERS, ), can_create_private_channel_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.MEMBERS, ), can_create_web_public_channel_group=GroupPermissionSetting( require_system_group=True, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.OWNERS, @@ -803,99 +787,71 @@ class Realm(models.Model): ], ), can_create_write_only_bots_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.MEMBERS, ), can_delete_any_message_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.ADMINISTRATORS, ), can_delete_own_message_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.EVERYONE, ), can_invite_users_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.MEMBERS, ), can_manage_all_groups=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=False, allow_everyone_group=False, default_group_name=SystemGroups.OWNERS, ), can_manage_billing_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=False, allow_everyone_group=False, default_group_name=SystemGroups.ADMINISTRATORS, ), can_mention_many_users_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.ADMINISTRATORS, ), can_move_messages_between_channels_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.MEMBERS, ), can_move_messages_between_topics_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.EVERYONE, ), can_resolve_topics_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.EVERYONE, ), can_set_topics_policy_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.MEMBERS, ), can_summarize_topics_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.EVERYONE, ), direct_message_initiator_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.EVERYONE, ), direct_message_permission_group=GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.EVERYONE, diff --git a/zerver/models/streams.py b/zerver/models/streams.py index bc1fb1c3d1..92eaad4945 100644 --- a/zerver/models/streams.py +++ b/zerver/models/streams.py @@ -166,36 +166,26 @@ class Stream(models.Model): stream_permission_group_settings = { "can_add_subscribers_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.NOBODY, ), "can_administer_channel_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name="stream_creator_or_nobody", ), "can_remove_subscribers_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.ADMINISTRATORS, ), "can_send_message_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=True, default_group_name=SystemGroups.EVERYONE, ), "can_subscribe_group": GroupPermissionSetting( - require_system_group=False, - allow_internet_group=False, allow_nobody_group=True, allow_everyone_group=False, default_group_name=SystemGroups.NOBODY,