]> source.dussan.org Git - redmine.git/commitdiff
Moved current user management to a dedicated method for modularity.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 30 Dec 2007 10:51:34 +0000 (10:51 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 30 Dec 2007 10:51:34 +0000 (10:51 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1029 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/application.rb

index 607ac091b68aff1278ae4d40155837500fadd902..306ebc03cf0f3d762af7cc81fb10a1e64bab844c 100644 (file)
@@ -28,18 +28,23 @@ class ApplicationController < ActionController::Base
   end
   
   def user_setup
+    # Check the settings cache for each request
     Setting.check_cache
+    # Find the current user
+    User.current = find_current_user
+  end
+  
+  # Returns the current user or nil if no user is logged in
+  def find_current_user
     if session[:user_id]
       # existing session
-      User.current = User.find(session[:user_id])
+      (User.find_active(session[:user_id]) rescue nil)
     elsif cookies[:autologin] && Setting.autologin?
       # auto-login feature
-      User.current = User.find_by_autologin_key(cookies[:autologin])
+      User.find_by_autologin_key(cookies[:autologin])
     elsif params[:key] && accept_key_auth_actions.include?(params[:action])
       # RSS key authentication
-      User.current = User.find_by_rss_key(params[:key])
-    else
-      User.current = User.anonymous
+      User.find_by_rss_key(params[:key])
     end
   end