notices, password recovery corner cases and UI changes
This commit is contained in:
parent
dace874f4f
commit
a69df8e658
14 changed files with 49 additions and 38 deletions
|
@ -6,12 +6,13 @@ class UsersController < ApplicationController
|
|||
def create
|
||||
@user = User.create(params.require(:user).permit(:email, :password))
|
||||
session[:user_id] = @user.id
|
||||
redirect_to '/welcome'
|
||||
redirect_to '/welcome', notice: 'Account has been created'
|
||||
end
|
||||
|
||||
def password_recovery_request
|
||||
@user = User.where(email: params['email']).first
|
||||
UserMailer.with(user: @user).password_recovery.deliver_now
|
||||
redirect_to '/welcome', notice: "Recovery email sent to #{params['email']}"
|
||||
end
|
||||
|
||||
def password_recovery_request_form
|
||||
|
@ -24,13 +25,17 @@ class UsersController < ApplicationController
|
|||
|
||||
def recover_password
|
||||
user = User.find(params[:user_id])
|
||||
if user.authenticate_recovery_password(params[:recovery_password])
|
||||
if user.recovery_password_digest && user.authenticate_recovery_password(params[:recovery_password])
|
||||
user.password = params[:password]
|
||||
user.password_confirmation = params[:password_confirmation]
|
||||
user.recovery_password_digest = nil
|
||||
if user.save
|
||||
redirect_to '/welcome'
|
||||
user.update(recovery_password: nil)
|
||||
redirect_to '/welcome', notice: 'Password changed'
|
||||
else
|
||||
redirect_to '/welcome', notice: 'Passwords don\'t match'
|
||||
end
|
||||
else
|
||||
redirect_to '/welcome', notice: 'Recovery link expired or unvalid'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue