Automatically log a creator in after they confirm their email (#14855)

This commit is contained in:
Ridhwana 2021-10-04 19:09:51 +02:00 committed by GitHub
parent 3801789e8f
commit de36a00843
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,6 +2,24 @@ class ConfirmationsController < Devise::ConfirmationsController
FLASH_MESSAGE = "Email sent! Please contact support at %<email>s if you are "\
"having trouble receiving your confirmation instructions.".freeze
# GET /resource/confirmation?confirmation_token=abcdef
def show
self.resource = resource_class.confirm_by_token(params[:confirmation_token])
yield resource if block_given?
if resource.errors.empty?
set_flash_message!(:notice, :confirmed)
if resource.creator?
sign_in(resource)
redirect_to root_path
else
respond_with_navigational(resource) { redirect_to after_confirmation_path_for(resource_name, resource) }
end
else
respond_with_navigational(resource.errors, status: :unprocessable_entity) { render :new }
end
end
def create
self.resource = resource_class.send_confirmation_instructions(resource_params)
resource.errors.clear # Don't leak user information, like paranoid mode.