From c8a5d01771a284a595cfdc46550fb1e2325e5915 Mon Sep 17 00:00:00 2001 From: "Stanko K.R." Date: Fri, 12 Dec 2025 09:59:42 +0100 Subject: [PATCH] Wrap join code redemption in a lock --- app/models/account/join_code.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/account/join_code.rb b/app/models/account/join_code.rb index 79160cbaa..6438d3ab8 100644 --- a/app/models/account/join_code.rb +++ b/app/models/account/join_code.rb @@ -11,8 +11,8 @@ class Account::JoinCode < ApplicationRecord before_create :generate_code, if: -> { code.blank? } def redeem_if(&block) - transaction do - increment!(:usage_count) if block.call(account) + with_lock do + increment!(:usage_count) if active? && block.call(account) end end