X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/22f84a3ea8bc39eb4cb91575d35dfca683336032..4446a6555bd54ca10a925340bb65c706678ac98e:/lib/authenticated_system.rb diff --git a/lib/authenticated_system.rb b/lib/authenticated_system.rb index 840d89a..370a3e9 100644 --- a/lib/authenticated_system.rb +++ b/lib/authenticated_system.rb @@ -3,17 +3,18 @@ module AuthenticatedSystem # Returns true or false if the user is logged in. # Preloads @current_user with the user model if they're logged in. def logged_in? - current_user != :false + (@current_user ||= session[:user_id] ? User.find_by_id(session[:user_id]) : :false).is_a?(User) end # Accesses the current user from the session. def current_user - @current_user ||= (session[:user] && User.find_by_id(session[:user])) || :false + @current_user if logged_in? end # Store the given user in the session. def current_user=(new_user) - session[:user] = (new_user.nil? || new_user.is_a?(Symbol)) ? nil : new_user.id + session[:user] = new_user + session[:user_id] = new_user.nil? ? nil : new_user.id @current_user = new_user end