From cb43bdab93ec3d40b01ef258b89ea8139d389ddf Mon Sep 17 00:00:00 2001 From: Sahil Batra Date: Mon, 3 Jan 2022 15:44:50 +0530 Subject: [PATCH] actions: Use transaction.atomic for do_change_default_all_public_streams. --- zerver/lib/actions.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index dae375e3ad..eb57311112 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -4895,6 +4895,7 @@ def do_change_default_events_register_stream( ) +@transaction.atomic(durable=True) def do_change_default_all_public_streams( user_profile: UserProfile, value: bool, *, acting_user: Optional[UserProfile] ) -> None: @@ -4918,17 +4919,20 @@ def do_change_default_all_public_streams( ) if user_profile.is_bot: - send_event( - user_profile.realm, - dict( - type="realm_bot", - op="update", - bot=dict( - user_id=user_profile.id, - default_all_public_streams=user_profile.default_all_public_streams, - ), + event = dict( + type="realm_bot", + op="update", + bot=dict( + user_id=user_profile.id, + default_all_public_streams=user_profile.default_all_public_streams, ), - bot_owner_user_ids(user_profile), + ) + transaction.on_commit( + lambda: send_event( + user_profile.realm, + event, + bot_owner_user_ids(user_profile), + ) )