mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	invites: Use transactions more consistently.
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							9dfaa83aa8
						
					
				
				
					commit
					594e2823a7
				
			@@ -350,6 +350,7 @@ def do_get_invites_controlled_by_user(user_profile: UserProfile) -> List[Dict[st
 | 
				
			|||||||
    return invites
 | 
					    return invites
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@transaction.atomic
 | 
				
			||||||
def do_create_multiuse_invite_link(
 | 
					def do_create_multiuse_invite_link(
 | 
				
			||||||
    referred_by: UserProfile,
 | 
					    referred_by: UserProfile,
 | 
				
			||||||
    invited_as: int,
 | 
					    invited_as: int,
 | 
				
			||||||
@@ -368,6 +369,7 @@ def do_create_multiuse_invite_link(
 | 
				
			|||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@transaction.atomic
 | 
				
			||||||
def do_revoke_user_invite(prereg_user: PreregistrationUser) -> None:
 | 
					def do_revoke_user_invite(prereg_user: PreregistrationUser) -> None:
 | 
				
			||||||
    email = prereg_user.email
 | 
					    email = prereg_user.email
 | 
				
			||||||
    realm = prereg_user.realm
 | 
					    realm = prereg_user.realm
 | 
				
			||||||
@@ -378,23 +380,20 @@ def do_revoke_user_invite(prereg_user: PreregistrationUser) -> None:
 | 
				
			|||||||
    # to a "revoked" status so that we can give the invited user a better
 | 
					    # to a "revoked" status so that we can give the invited user a better
 | 
				
			||||||
    # error message.
 | 
					    # error message.
 | 
				
			||||||
    content_type = ContentType.objects.get_for_model(PreregistrationUser)
 | 
					    content_type = ContentType.objects.get_for_model(PreregistrationUser)
 | 
				
			||||||
    with transaction.atomic():
 | 
					    Confirmation.objects.filter(content_type=content_type, object_id=prereg_user.id).delete()
 | 
				
			||||||
        Confirmation.objects.filter(content_type=content_type, object_id=prereg_user.id).delete()
 | 
					    prereg_user.delete()
 | 
				
			||||||
        prereg_user.delete()
 | 
					    clear_scheduled_invitation_emails(email)
 | 
				
			||||||
        clear_scheduled_invitation_emails(email)
 | 
					 | 
				
			||||||
    notify_invites_changed(realm, changed_invite_referrer=prereg_user.referred_by)
 | 
					    notify_invites_changed(realm, changed_invite_referrer=prereg_user.referred_by)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@transaction.atomic
 | 
				
			||||||
def do_revoke_multi_use_invite(multiuse_invite: MultiuseInvite) -> None:
 | 
					def do_revoke_multi_use_invite(multiuse_invite: MultiuseInvite) -> None:
 | 
				
			||||||
    realm = multiuse_invite.referred_by.realm
 | 
					    realm = multiuse_invite.referred_by.realm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    content_type = ContentType.objects.get_for_model(MultiuseInvite)
 | 
					    content_type = ContentType.objects.get_for_model(MultiuseInvite)
 | 
				
			||||||
    with transaction.atomic():
 | 
					    Confirmation.objects.filter(content_type=content_type, object_id=multiuse_invite.id).delete()
 | 
				
			||||||
        Confirmation.objects.filter(
 | 
					    multiuse_invite.status = confirmation_settings.STATUS_REVOKED
 | 
				
			||||||
            content_type=content_type, object_id=multiuse_invite.id
 | 
					    multiuse_invite.save(update_fields=["status"])
 | 
				
			||||||
        ).delete()
 | 
					 | 
				
			||||||
        multiuse_invite.status = confirmation_settings.STATUS_REVOKED
 | 
					 | 
				
			||||||
        multiuse_invite.save(update_fields=["status"])
 | 
					 | 
				
			||||||
    notify_invites_changed(realm, changed_invite_referrer=multiuse_invite.referred_by)
 | 
					    notify_invites_changed(realm, changed_invite_referrer=multiuse_invite.referred_by)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user