diff options
Diffstat (limited to 'app/models/concerns/forced_email_confirmation.rb')
-rw-r--r-- | app/models/concerns/forced_email_confirmation.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/app/models/concerns/forced_email_confirmation.rb b/app/models/concerns/forced_email_confirmation.rb new file mode 100644 index 00000000000..649400184e5 --- /dev/null +++ b/app/models/concerns/forced_email_confirmation.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module ForcedEmailConfirmation + extend ActiveSupport::Concern + + included do + attr_accessor :skip_confirmation_period_expiry_check + end + + def force_confirm(args = {}) + self.skip_confirmation_period_expiry_check = true + confirm(args) + ensure + self.skip_confirmation_period_expiry_check = nil + end + + protected + + # Override, from Devise::Models::Confirmable + # Link: https://github.com/heartcombo/devise/blob/main/lib/devise/models/confirmable.rb + def confirmation_period_expired? + return false if skip_confirmation_period_expiry_check + + super + end +end |