user_groups: Add setting to control who can remove members.

This commit adds a new setting to control who can remove
members from the group.
This commit is contained in:
Sahil Batra
2024-11-25 09:05:51 +05:30
committed by Tim Abbott
parent 3c97fbd646
commit 7e6a02b82d
15 changed files with 253 additions and 4 deletions

View File

@@ -282,6 +282,7 @@ def get_temp_user_group_id() -> dict[str, object]:
can_leave_group_id=15,
can_manage_group_id=11,
can_mention_group_id=11,
can_remove_members_group_id=11,
realm_for_sharding=get_realm("zulip"),
)
return {
@@ -300,6 +301,7 @@ def get_temp_user_group_id_for_deactivation() -> dict[str, object]:
can_leave_group_id=15,
can_manage_group_id=11,
can_mention_group_id=11,
can_remove_members_group_id=11,
realm_for_sharding=get_realm("zulip"),
)
return {

View File

@@ -3220,6 +3220,7 @@ paths:
"can_leave_group": 15,
"can_manage_group": 16,
"can_mention_group": 11,
"can_remove_members_group": 16,
},
"id": 0,
}
@@ -3350,6 +3351,20 @@ paths:
[setting-values]: /api/group-setting-values
[system-groups]: /api/group-setting-values#system-groups
[mentions]: /help/mention-a-user-or-group
can_remove_members_group:
allOf:
- $ref: "#/components/schemas/GroupSettingValue"
- description: |
A [group-setting value][setting-values] defining the set of users who
have permission to remove members from this group. Only present if this
user group permission setting changed.
**Changes**: New in Zulip 10.0 (feature level 324). Previously, this
permission was controlled by the `can_manage_group` setting.
Will be one of the following:
[setting-values]: /api/group-setting-values
deactivated:
type: boolean
description: |
@@ -20548,6 +20563,19 @@ paths:
[mentions]: /help/mention-a-user-or-group
- $ref: "#/components/schemas/GroupSettingValue"
example: 11
can_remove_members_group:
allOf:
- description: |
A [group-setting value][setting-values] defining the set of users who
have permission to remove members from this user group.
**Changes**: New in Zulip 10.0 (feature level 324). Previously, this
permission was controlled by the `can_manage_group` setting.
[setting-values]: /api/group-setting-values
[system-groups]: /api/group-setting-values#system-groups
- $ref: "#/components/schemas/GroupSettingValue"
example: 11
required:
- name
- description
@@ -20567,6 +20595,8 @@ paths:
contentType: application/json
can_mention_group:
contentType: application/json
can_remove_members_group:
contentType: application/json
responses:
"200":
description: |
@@ -20919,6 +20949,38 @@ paths:
"new": {"direct_members": [10], "direct_subgroups": [11]},
"old": 11,
}
can_remove_members_group:
description: |
The set of users who have permission to remove members from this user group
expressed as an [update to a group-setting value][update-group-setting].
**Changes**: New in Zulip 10.0 (feature level 324). Previously, this
permission was controlled by the `can_manage_group` setting.
[update-group-setting]: /api/group-setting-values#updating-group-setting-values
[system-groups]: /api/group-setting-values#system-groups
type: object
additionalProperties: false
properties:
new:
allOf:
- description: |
The new [group-setting value](/api/group-setting-values) for the set of users
who would have the permission to remove members from the group.
- $ref: "#/components/schemas/GroupSettingValue"
old:
allOf:
- description: |
The expected current [group-setting value](/api/group-setting-values) for
the set of users who have the permission to remove members from the group.
- $ref: "#/components/schemas/GroupSettingValue"
required:
- new
example:
{
"new": {"direct_members": [10], "direct_subgroups": [11]},
"old": 11,
}
encoding:
can_add_members_group:
contentType: application/json
@@ -20930,6 +20992,8 @@ paths:
contentType: application/json
can_mention_group:
contentType: application/json
can_remove_members_group:
contentType: application/json
responses:
"200":
$ref: "#/components/responses/SimpleSuccess"
@@ -21144,6 +21208,19 @@ paths:
[setting-values]: /api/group-setting-values
[system-groups]: /api/group-setting-values#system-groups
[mentions]: /help/mention-a-user-or-group
can_remove_members_group:
allOf:
- $ref: "#/components/schemas/GroupSettingValue"
- description: |
A [group-setting value][setting-values] defining the set of users who
have permission to remove members from this user group.
**Changes**: New in Zulip 10.0 (feature level 324). Previously, this
permission was controlled by the `can_manage_group` setting.
Will be one of the following:
[setting-values]: /api/group-setting-values
deactivated:
type: boolean
description: |
@@ -21174,6 +21251,7 @@ paths:
"can_leave_group": 15,
"can_manage_group": 16,
"can_mention_group": 11,
"can_remove_members_group": 16,
},
{
"description": "Administrators of this organization, including owners",
@@ -21189,6 +21267,7 @@ paths:
"can_leave_group": 15,
"can_manage_group": 17,
"can_mention_group": 12,
"can_remove_members_group": 16,
},
{
"description": "Characters of Hamlet",
@@ -21204,6 +21283,7 @@ paths:
"can_leave_group": 15,
"can_manage_group": 20,
"can_mention_group": 13,
"can_remove_members_group": 16,
},
],
}
@@ -22583,6 +22663,19 @@ components:
[setting-values]: /api/group-setting-values
[system-groups]: /api/group-setting-values#system-groups
[mentions]: /help/mention-a-user-or-group
can_remove_members_group:
allOf:
- $ref: "#/components/schemas/GroupSettingValue"
- description: |
A [group-setting value][setting-values] defining the set of users who
have permission to remove members from this user group.
**Changes**: New in Zulip 10.0 (feature level 324). Previously, this
permission was controlled by the `can_manage_group` setting.
Will be one of the following:
[setting-values]: /api/group-setting-values
deactivated:
type: boolean
description: |