mirror of
https://github.com/zulip/zulip.git
synced 2025-11-07 07:23:22 +00:00
user_groups: Use atomic transaction for adding/removing members.
We execute code for bulk adding and removing members from a user group inside a transaction.
This commit is contained in:
@@ -8544,9 +8544,12 @@ def do_send_user_group_members_update_event(
|
|||||||
event_name: str, user_group: UserGroup, user_ids: List[int]
|
event_name: str, user_group: UserGroup, user_ids: List[int]
|
||||||
) -> None:
|
) -> None:
|
||||||
event = dict(type="user_group", op=event_name, group_id=user_group.id, user_ids=user_ids)
|
event = dict(type="user_group", op=event_name, group_id=user_group.id, user_ids=user_ids)
|
||||||
send_event(user_group.realm, event, active_user_ids(user_group.realm_id))
|
transaction.on_commit(
|
||||||
|
lambda: send_event(user_group.realm, event, active_user_ids(user_group.realm_id))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@transaction.atomic(savepoint=False)
|
||||||
def bulk_add_members_to_user_group(user_group: UserGroup, user_profiles: List[UserProfile]) -> None:
|
def bulk_add_members_to_user_group(user_group: UserGroup, user_profiles: List[UserProfile]) -> None:
|
||||||
memberships = [
|
memberships = [
|
||||||
UserGroupMembership(user_group_id=user_group.id, user_profile=user_profile)
|
UserGroupMembership(user_group_id=user_group.id, user_profile=user_profile)
|
||||||
@@ -8558,6 +8561,7 @@ def bulk_add_members_to_user_group(user_group: UserGroup, user_profiles: List[Us
|
|||||||
do_send_user_group_members_update_event("add_members", user_group, user_ids)
|
do_send_user_group_members_update_event("add_members", user_group, user_ids)
|
||||||
|
|
||||||
|
|
||||||
|
@transaction.atomic(savepoint=False)
|
||||||
def remove_members_from_user_group(user_group: UserGroup, user_profiles: List[UserProfile]) -> None:
|
def remove_members_from_user_group(user_group: UserGroup, user_profiles: List[UserProfile]) -> None:
|
||||||
UserGroupMembership.objects.filter(
|
UserGroupMembership.objects.filter(
|
||||||
user_group_id=user_group.id, user_profile__in=user_profiles
|
user_group_id=user_group.id, user_profile__in=user_profiles
|
||||||
|
|||||||
Reference in New Issue
Block a user