Rename and refactor User#confirm! to User#mark_email_as_confirmed! (#28735)

This commit is contained in:
Claire authored and GitHub committed 2024-01-15 18:04:58 +00:00
1 parent e621c1c44c
commit 98b5f85f10
7 files changed
+33 -35

No files matched your search

@@ -7,7 +7,7 @@ module Admin
def create
authorize @user, :confirm?
@user.confirm!
@user.mark_email_as_confirmed!
log_action :confirm, @user
redirect_to admin_accounts_path
end
+1 -1
View File
@@ -61,7 +61,7 @@ module User::Omniauthable
user.account.avatar_remote_url = nil
end
user.confirm! if email_is_verified
user.mark_email_as_confirmed! if email_is_verified
user.save!
user
end
+26 -28
View File
@@ -190,37 +190,16 @@ class User < ApplicationRecord
end
def confirm
new_user = !confirmed?
self.approved = true if grant_approval_on_confirmation?
super
if new_user
# Avoid extremely unlikely race condition when approving and confirming
# the user at the same time
reload unless approved?
if approved?
prepare_new_user!
else
notify_staff_about_pending_account!
end
wrap_email_confirmation do
super
end
end
def confirm!
new_user = !confirmed?
self.approved = true if grant_approval_on_confirmation?
skip_confirmation!
save!
if new_user
# Avoid extremely unlikely race condition when approving and confirming
# the user at the same time
reload unless approved?
prepare_new_user! if approved?
# Mark current email as confirmed, bypassing Devise
def mark_email_as_confirmed!
wrap_email_confirmation do
skip_confirmation!
save!
end
end
@@ -435,6 +414,25 @@ class User < ApplicationRecord
open_registrations? && !sign_up_from_ip_requires_approval? && !sign_up_email_requires_approval?
end
def wrap_email_confirmation
new_user = !confirmed?
self.approved = true if grant_approval_on_confirmation?
yield
if new_user
# Avoid extremely unlikely race condition when approving and confirming
# the user at the same time
reload unless approved?
if approved?
prepare_new_user!
else
notify_staff_about_pending_account!
end
end
end
def sign_up_from_ip_requires_approval?
!sign_up_ip.nil? && IpBlock.where(severity: :sign_up_requires_approval).where('ip >>= ?', sign_up_ip.to_s).exists?
end