mirror of
https://github.com/zulip/zulip.git
synced 2025-11-16 20:02:15 +00:00
user_groups: Use UserGroupMembersDict in initial state data.
On the event side, orjson does the work of converting UserGroupMembersData to json. But when fetching intial state data, UserGroupMembersData was being returned which is not json-serializable. This was causing a mismatch in the `verify_action` workflow of test_events related to stream group settings where apply_events resulted in a state with `direct_members` and `direct_subgroups` as part of an ordinary dict, while fetching initial state data was giving us a UserGroupMembersData class. This commit uses UserGroupMembersDict where appropriate. It will still be good to keep around the dataclass class since it has the added benefit of storing the relevant value when needed.
This commit is contained in:
committed by
Tim Abbott
parent
37d91d9759
commit
b3862c5008
@@ -9,8 +9,9 @@ from django.utils.translation import gettext as _
|
||||
|
||||
from zerver.lib.exceptions import JsonableError
|
||||
from zerver.lib.timestamp import datetime_to_timestamp
|
||||
from zerver.lib.types import UserGroupMembersData
|
||||
from zerver.lib.types import UserGroupMembersData, UserGroupMembersDict
|
||||
from zerver.lib.user_groups import (
|
||||
convert_to_user_group_members_dict,
|
||||
get_group_setting_value_for_api,
|
||||
get_group_setting_value_for_audit_log_data,
|
||||
get_role_based_system_groups_dict,
|
||||
@@ -178,8 +179,8 @@ def do_send_create_user_group_event(
|
||||
|
||||
setting_values = {}
|
||||
for setting_name in NamedUserGroup.GROUP_PERMISSION_SETTINGS:
|
||||
setting_values[setting_name] = get_group_setting_value_for_api(
|
||||
getattr(user_group, setting_name)
|
||||
setting_values[setting_name] = convert_to_user_group_members_dict(
|
||||
get_group_setting_value_for_api(getattr(user_group, setting_name))
|
||||
)
|
||||
|
||||
event = dict(
|
||||
@@ -226,7 +227,7 @@ def check_add_user_group(
|
||||
|
||||
|
||||
def do_send_user_group_update_event(
|
||||
user_group: NamedUserGroup, data: dict[str, str | int | UserGroupMembersData]
|
||||
user_group: NamedUserGroup, data: dict[str, str | int | UserGroupMembersDict]
|
||||
) -> None:
|
||||
event = dict(type="user_group", op="update", group_id=user_group.id, data=data)
|
||||
if "name" in data:
|
||||
@@ -515,7 +516,7 @@ def do_change_user_group_permission_setting(
|
||||
},
|
||||
)
|
||||
|
||||
event_data_dict: dict[str, str | int | UserGroupMembersData] = {
|
||||
setting_name: new_setting_api_value
|
||||
event_data_dict: dict[str, str | int | UserGroupMembersDict] = {
|
||||
setting_name: convert_to_user_group_members_dict(new_setting_api_value)
|
||||
}
|
||||
do_send_user_group_update_event(user_group, event_data_dict)
|
||||
|
||||
Reference in New Issue
Block a user