forked from External/greenlight
* <Implemented basic welcome email upon signup> * <Added config option to enable> * <Added verification link routing> * <Added views for verify/resend and reconfigured routes> * <Finished Verification System minus Rspec changes> * <Fixed code style> * <Modified dome rspec tests> * <Switched sample env back to default> * <Added test cases to increase code coverage> * <Added test_helper> * <Minor code changes> * <Added requested changes> * <Added requested changes> * <see if this fixes migration> * <see if this fixes migration> * <fixed migrations> * Delete .rake_tasks~ * Update _confirm_button.html.erb * Update _resend_button.html.erb * Update verify_email.html.erb * Update verify_email.text.erb * <Fixed bugs> * <Added validation of verification link and fixed some code style> * <Disabled updating email for omniauth>
This commit is contained in:
@ -28,7 +28,10 @@ class UsersController < ApplicationController
|
||||
@user = User.new(user_params)
|
||||
@user.provider = "greenlight"
|
||||
|
||||
if @user.save
|
||||
if Rails.configuration.enable_email_verification && @user.save
|
||||
UserMailer.verify_email(@user, verification_link(@user)).deliver
|
||||
login(@user)
|
||||
elsif @user.save
|
||||
login(@user)
|
||||
else
|
||||
# Handle error on user creation.
|
||||
@ -81,6 +84,9 @@ class UsersController < ApplicationController
|
||||
errors.each { |k, v| @user.errors.add(k, v) }
|
||||
render :edit, params: { settings: params[:settings] }
|
||||
end
|
||||
elsif user_params[:email] != @user.email && @user.update_attributes(user_params)
|
||||
@user.update_attributes(email_verified: false)
|
||||
redirect_to edit_user_path(@user), notice: I18n.t("info_update_success")
|
||||
elsif @user.update_attributes(user_params)
|
||||
redirect_to edit_user_path(@user), notice: I18n.t("info_update_success")
|
||||
else
|
||||
@ -97,18 +103,50 @@ class UsersController < ApplicationController
|
||||
redirect_to root_path
|
||||
end
|
||||
|
||||
# GET /terms
|
||||
# GET | POST /terms
|
||||
def terms
|
||||
redirect_to '/404' unless Rails.configuration.terms
|
||||
|
||||
if params[:accept] == "true"
|
||||
current_user.update_attributes(accepted_terms: true)
|
||||
redirect_to current_user.main_room if current_user
|
||||
login(current_user)
|
||||
end
|
||||
end
|
||||
|
||||
# GET | POST /u/verify/confirm
|
||||
def confirm
|
||||
if !current_user || current_user.uid != params[:user_uid]
|
||||
redirect_to '/404'
|
||||
elsif current_user.email_verified
|
||||
login(current_user)
|
||||
elsif params[:email_verified] == "true"
|
||||
current_user.update_attributes(email_verified: true)
|
||||
login(current_user)
|
||||
else
|
||||
render 'verify'
|
||||
end
|
||||
end
|
||||
|
||||
# GET /u/verify/resend
|
||||
def resend
|
||||
if !current_user
|
||||
redirect_to '/404'
|
||||
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'
|
||||
else
|
||||
render 'verify'
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def verification_link(user)
|
||||
request.base_url + confirm_path(user.uid)
|
||||
end
|
||||
|
||||
def find_user
|
||||
@user = User.find_by!(uid: params[:user_uid])
|
||||
end
|
||||
|
Reference in New Issue
Block a user