X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/cbbfdf394880d29c9a6cc2259fcfd474088fa9bb..1a46f412197e881c8a71c4cc6ee169917d19a5d7:/app/controllers/application_controller.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 110682947..c43271b93 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -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