refactored login process, added remember option for login

This commit is contained in:
albert
2011-10-15 16:36:07 -04:00
parent 1b7102b2e6
commit d324f4a071
10 changed files with 142 additions and 37 deletions

View File

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

View File

@@ -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.")