]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/application_controller.rb
Added referer URL in user_token so that redirections (e.g: from oauth token requests...
[rails.git] / app / controllers / application_controller.rb
index 110682947aa7b75983b0a7ac5cf020ca0c68ee6a..c43271b93a81faf5b3426a75097ac5fc1053f0e5 100644 (file)
@@ -31,8 +31,8 @@ class ApplicationController < ActionController::Base
   def require_capability(cap)
     # when the current token is nil, it means the user logged in with a different
     # method, otherwise an OAuth token was used, which has to be checked.
-    unless @current_token.nil?
-      unless @current_token.read_attribute(cap)
+    unless current_token.nil?
+      unless current_token.read_attribute(cap)
         render :text => "OAuth token doesn't have that capability.", :status => :forbidden
         return false
       end
@@ -66,7 +66,7 @@ class ApplicationController < ActionController::Base
   def setup_user_auth
     # try and setup using OAuth
     if oauthenticate
-      @user = @current_token.user
+      @user = current_token.user
     else
       username, passwd = get_auth_data # parse from headers
       # authenticate per-scheme
@@ -143,9 +143,12 @@ class ApplicationController < ActionController::Base
   end
   
   def set_locale
+    response.header['Vary'] = 'Accept-Language'
+
     if @user
       if !@user.languages.empty?
         request.user_preferred_languages = @user.languages
+        response.header['Vary'] = '*'
       elsif !request.user_preferred_languages.empty?
         @user.languages = request.user_preferred_languages
         @user.save
@@ -171,6 +174,8 @@ class ApplicationController < ActionController::Base
     rescue OSM::APIError => ex
       report_error ex.message, ex.status
     rescue Exception => ex
+      logger.info("API threw unexpected #{ex.class} exception: #{ex.message}")
+      ex.backtrace.each { |l| logger.info(l) }
       report_error "#{ex.class}: #{ex.message}", :internal_server_error
     end
   end