user_groups: Add client capability to handle deactivated groups.

This commit adds a client capability to not receive data about
deactivated groups.
This commit is contained in:
Sahil Batra
2024-09-12 15:16:48 +05:30
committed by Tim Abbott
parent aa123b38b4
commit fb63c47ea6
8 changed files with 131 additions and 1 deletions

View File

@@ -224,6 +224,12 @@ def do_send_user_group_update_event(
user_group: NamedUserGroup, data: dict[str, str | int | AnonymousSettingGroupDict]
) -> None:
event = dict(type="user_group", op="update", group_id=user_group.id, data=data)
if "name" in data:
# This field will be popped eventually before sending the event
# to client, but is needed to make sure we do not send the
# name update event for deactivated groups to client with
# 'include_deactivated_groups' client capability set to false.
event["deactivated"] = user_group.deactivated
send_event_on_commit(user_group.realm, event, active_user_ids(user_group.realm_id))
@@ -463,6 +469,9 @@ def do_deactivate_user_group(
do_send_user_group_update_event(user_group, dict(deactivated=True))
event = dict(type="user_group", op="remove", group_id=user_group.id)
send_event_on_commit(user_group.realm, event, active_user_ids(user_group.realm_id))
@transaction.atomic(savepoint=False)
def do_change_user_group_permission_setting(