Fix for email verification issue (GRN-36) (#300)

* <incorrect smtp settings no longer crashes the application>

* <Added rspec tests>

* <>

* Delete env

* Update development.rb
This commit is contained in:
John Ma
2018-10-17 11:42:50 -04:00
committed by Jesus Federico
parent de5bbc44f2
commit 1bb5be68a5
6 changed files with 64 additions and 7 deletions

View File

@ -29,8 +29,13 @@ class UsersController < ApplicationController
@user.provider = "greenlight"
if Rails.configuration.enable_email_verification && @user.save
UserMailer.verify_email(@user, verification_link(@user)).deliver
login(@user)
begin
UserMailer.verify_email(@user, verification_link(@user)).deliver
login(@user)
rescue => e
logger.error "Error in email delivery: #{e}"
mailer_delivery_fail
end
elsif @user.save
login(@user)
else
@ -134,8 +139,13 @@ class UsersController < ApplicationController
elsif current_user.email_verified
login(current_user)
elsif params[:email_verified] == "false"
UserMailer.verify_email(current_user, verification_link(current_user)).deliver
render 'verify'
begin
UserMailer.verify_email(current_user, verification_link(current_user)).deliver
render 'verify'
rescue => e
logger.error "Error in email delivery: #{e}"
mailer_delivery_fail
end
else
render 'verify'
end
@ -143,6 +153,10 @@ class UsersController < ApplicationController
private
def mailer_delivery_fail
redirect_to root_path, notice: I18n.t(params[:message], default: I18n.t("delivery_error"))
end
def verification_link(user)
request.base_url + confirm_path(user.uid)
end