class UsersController < ApplicationController def new @user = User.new end def create @user = User.create(params.require(:user).permit(:email, :password)) session[:user_id] = @user.id redirect_to '/welcome' end def send_password_recovery_email @user = User.where(email: params['email']).first UserMailer.with(user: @user).password_recovery.deliver_now end def password_recovery_email end def password_recovery @recovery_code = params[:recovery_code] @user_id = params[:id] end def recover_password user = User.find(params[:user_id]) if user.authenticate_recovery_password(params[:recovery_code]) user.password = params[:password] user.password_confirmation = params[:repeated_password] user.recovery_password_digest = nil if user.save redirect_to '/welcome' end end end end