It also makes sure that when a user is considered level 3 is also considered residence-verified.
41 lines
1.4 KiB
Ruby
41 lines
1.4 KiB
Ruby
class Verification::EmailController < ApplicationController
|
|
before_action :authenticate_user!
|
|
before_action :verify_verified!
|
|
before_action :set_verified_user, only: :create
|
|
skip_authorization_check
|
|
|
|
def show
|
|
if Verification::Email.find(current_user, params[:email_verification_token])
|
|
|
|
current_user.update(verified_at: Time.now,
|
|
document_number: current_user.document_number || current_user.unconfirmed_document_number,
|
|
residence_verified_at: current_user.residence_verified_at || Time.now)
|
|
|
|
redirect_to account_path, notice: t('verification.email.show.flash.success')
|
|
else
|
|
redirect_to verified_user_path, alert: t('verification.email.show.alert.failure')
|
|
end
|
|
end
|
|
|
|
def create
|
|
@email = Verification::Email.new(@verified_user)
|
|
if @email.save
|
|
current_user.reload
|
|
Mailer.email_verification(current_user, @email.recipient, @email.encrypted_token).deliver_later
|
|
redirect_to account_path, notice: t('verification.email.create.flash.success', email: @verified_user.email)
|
|
else
|
|
redirect_to verified_user_path, alert: t('verification.email.create.alert.failure')
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def set_verified_user
|
|
@verified_user = VerifiedUser.by_user(current_user).where(id: verified_user_params[:id]).first
|
|
end
|
|
|
|
def verified_user_params
|
|
params.require(:verified_user).permit(:id)
|
|
end
|
|
end
|