Hey everyone. In my app, I use a before_filter called ''authorize'' to set up a User object @current_user for the logged-in user (or reject the client if I can''t match their credentials). But depending on my environment, this filter needs to behave differently. In production, it needs to get the (already-authenticated, through a corporate SSO package) username from request.env[CUSTOM_KEY]. In development and test, we can''t get to the SSO, so we just let the client pick a user account to masquerade as, and put the username into the session. I found a simple way to do this, but it''s ugly: (app/controllers/application.rb) private def authenticate if RAILS_ENV == ''production'' @current_user = User.find_by_eid(request.env[''CUSTOM_KEY'']) unless @current_user redirect_to :controller => :login, :action => :unauthorized end else @current_user = User.find_by_eid(session[:fake_eid]) unless @current_user session[:original_uri] = request.request_uri flash[:notice] = "Please log in" redirect_to(:controller => "login", :action => "login") end end end I tried moving some of this code to config/environments/production.rb (for example), but of course when the configuration is happening, there is no request or session object, so I couldn''t do something like: (config/environments/production.rb) CURRENT_USER = request.env[''CUSTOM_KEY''] Does anyone have any suggestions on a cleaner way to do this than the hardcoded RAILS_ENV in ApplicationController.authenticate? Many thanks, Ben -- Ben Kimball benkimball-ee4meeAH724@public.gmane.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---