]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/application_controller.rb
Switch web site to use OAuth 2
[rails.git] / app / controllers / application_controller.rb
index c3eb1ad85969ad8a3fce2d25c60e35045000c55a..8df126a04e3a5ea02325b652dc0f0432cf08b5ab 100644 (file)
@@ -67,7 +67,7 @@ class ApplicationController < ActionController::Base
   end
 
   def require_oauth
   end
 
   def require_oauth
-    @oauth_token = current_user.access_token(Settings.oauth_key) if current_user && Settings.key?(:oauth_key)
+    @oauth_token = current_user.oauth_token(Settings.oauth_application) if current_user && Settings.key?(:oauth_application)
   end
 
   ##
   end
 
   ##
@@ -208,7 +208,7 @@ class ApplicationController < ActionController::Base
     report_error e.message, :bad_request
   rescue ActiveRecord::RecordInvalid => e
     message = "#{e.record.class} #{e.record.id}: "
     report_error e.message, :bad_request
   rescue ActiveRecord::RecordInvalid => e
     message = "#{e.record.class} #{e.record.id}: "
-    e.record.errors.each { |attr, msg| message << "#{attr}: #{msg} (#{e.record[attr].inspect})" }
+    e.record.errors.each { |error| message << "#{error.attribute}: #{error.message} (#{e.record[error.attribute].inspect})" }
     report_error message, :bad_request
   rescue OSM::APIError => e
     report_error e.message, e.status
     report_error message, :bad_request
   rescue OSM::APIError => e
     report_error e.message, e.status
@@ -345,7 +345,7 @@ class ApplicationController < ActionController::Base
   end
 
   def deny_access(_exception)
   end
 
   def deny_access(_exception)
-    if current_token
+    if doorkeeper_token || current_token
       set_locale
       report_error t("oauth.permissions.missing"), :forbidden
     elsif current_user
       set_locale
       report_error t("oauth.permissions.missing"), :forbidden
     elsif current_user
@@ -393,6 +393,8 @@ class ApplicationController < ActionController::Base
       referer = nil
     end
 
       referer = nil
     end
 
+    referer = nil if referer&.path&.first != "/"
+
     referer.to_s
   end
 end
     referer.to_s
   end
 end