notices, password recovery corner cases and UI changes

This commit is contained in:
Karol Selak 2021-03-21 12:41:21 +01:00
parent dace874f4f
commit a69df8e658
14 changed files with 49 additions and 38 deletions

View file

@ -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