user_groups: Add can_leave_group setting for user group.

This field will be used to control permission for who can
leave a user group.
This commit is contained in:
Shubham Padia
2024-10-14 06:05:55 +00:00
committed by Tim Abbott
parent 6007630164
commit 060156fca4
13 changed files with 242 additions and 5 deletions

View File

@@ -63,6 +63,7 @@ class NamedUserGroup(UserGroup): # type: ignore[django-manager-missing] # djang
UserGroup, on_delete=models.RESTRICT, related_name="+"
)
can_join_group = models.ForeignKey(UserGroup, on_delete=models.RESTRICT, related_name="+")
can_leave_group = models.ForeignKey(UserGroup, on_delete=models.RESTRICT, related_name="+")
can_manage_group = models.ForeignKey(UserGroup, on_delete=models.RESTRICT, related_name="+")
can_mention_group = models.ForeignKey(
UserGroup, on_delete=models.RESTRICT, db_column="can_mention_group_id"
@@ -118,6 +119,16 @@ class NamedUserGroup(UserGroup): # type: ignore[django-manager-missing] # djang
default_for_system_groups=SystemGroups.NOBODY,
id_field_name="can_join_group_id",
),
"can_leave_group": GroupPermissionSetting(
require_system_group=False,
allow_internet_group=False,
allow_owners_group=True,
allow_nobody_group=True,
allow_everyone_group=True,
default_group_name=SystemGroups.EVERYONE,
default_for_system_groups=SystemGroups.NOBODY,
id_field_name="can_leave_group_id",
),
"can_manage_group": GroupPermissionSetting(
require_system_group=False,
allow_internet_group=False,