refactored login process, added remember option for login
This commit is contained in:
@@ -31,20 +31,8 @@ protected
|
||||
end
|
||||
|
||||
def set_current_user
|
||||
if session[:user_id]
|
||||
CurrentUser.user = User.find_by_id(session[:user_id])
|
||||
CurrentUser.ip_addr = request.remote_ip
|
||||
end
|
||||
|
||||
if CurrentUser.user
|
||||
if CurrentUser.user.is_banned? && CurrentUser.user.ban && CurrentUser.user.ban.expires_at < Time.now
|
||||
CurrentUser.user.unban!
|
||||
end
|
||||
else
|
||||
CurrentUser.user = AnonymousUser.new
|
||||
end
|
||||
|
||||
Time.zone = CurrentUser.user.time_zone
|
||||
session_loader = SessionLoader.new(session, cookies, request)
|
||||
session_loader.load
|
||||
end
|
||||
|
||||
def reset_current_user
|
||||
|
||||
@@ -4,10 +4,9 @@ class SessionsController < ApplicationController
|
||||
end
|
||||
|
||||
def create
|
||||
if User.authenticate(params[:name], params[:password])
|
||||
@user = User.find_by_name(params[:name])
|
||||
@user.update_column(:last_logged_in_at, Time.now)
|
||||
session[:user_id] = @user.id
|
||||
session_creator = SessionCreator.new(session, cookies, params[:name], params[:password], params[:remember])
|
||||
|
||||
if session_creator.authenticate
|
||||
redirect_to(params[:url] || session[:previous_uri] || posts_path, :notice => "You are now logged in.")
|
||||
else
|
||||
redirect_to(new_session_path, :notice => "Password was incorrect.")
|
||||
|
||||
Reference in New Issue
Block a user