mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 04:53:36 +00:00
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.
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user