X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/7f556f94f1d479346cbefb5cbeec0a6a0b7b8547..c485ae32490ccf98dcbea96af6218b25540f5eaa:/app/controllers/application_controller.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 3506b4196..d58bc8922 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -3,7 +3,12 @@ class ApplicationController < ActionController::Base protect_from_forgery if STATUS == :database_readonly or STATUS == :database_offline - session :off + after_filter :clear_session + wrap_parameters false + + def clear_session + session.clear + end def self.cache_sweeper(*sweepers) end @@ -30,8 +35,9 @@ class ApplicationController < ActionController::Base end end elsif session[:token] - @user = User.authenticate(:token => session[:token]) - session[:user] = @user.id + if @user = User.authenticate(:token => session[:token]) + session[:user] = @user.id + end end rescue Exception => ex logger.info("Exception authorizing user: #{ex.to_s}") @@ -106,9 +112,7 @@ class ApplicationController < ActionController::Base # is optional. def setup_user_auth # try and setup using OAuth - if Authenticator.new(self, [:token]).allow? - @user = current_token.user - else + if not Authenticator.new(self, [:token]).allow? username, passwd = get_auth_data # parse from headers # authenticate per-scheme if username.nil? @@ -199,7 +203,7 @@ class ApplicationController < ActionController::Base request.headers['X-Error-Format'].downcase == "xml" result = OSM::API.new.get_xml_doc result.root.name = "osmError" - result.root << (XML::Node.new("status") << interpret_status(status)) + result.root << (XML::Node.new("status") << "#{Rack::Utils.status_code(status)} #{Rack::Utils::HTTP_STATUS_CODES[status]}") result.root << (XML::Node.new("message") << message) render :text => result.to_s, :content_type => "text/xml" @@ -358,6 +362,11 @@ private return [user, pass] end + # used by oauth plugin to set the current user + def current_user=(user) + @user=user + end + # override to stop oauth plugin sending errors def invalid_oauth_response end