X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/9b8f2bbcbe2ce3a60919e6a0adcca2865f176090..83a0ea14f1305cd0a62ee2caeb0142fe077d886c:/app/controllers/application_controller.rb?ds=sidebyside diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 2083627f5..07b23ce21 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -17,7 +17,6 @@ class ApplicationController < ActionController::Base helper_method :current_user helper_method :oauth_token - helper_method :preferred_langauges private @@ -67,7 +66,7 @@ class ApplicationController < ActionController::Base 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 ## @@ -382,18 +381,28 @@ class ApplicationController < ActionController::Base # clean any referer parameter def safe_referer(referer) - referer = URI.parse(referer) + begin + referer = URI.parse(referer) + + if referer.scheme == "http" || referer.scheme == "https" + referer.scheme = nil + referer.host = nil + referer.port = nil + elsif referer.scheme || referer.host || referer.port + referer = nil + end - if referer.scheme == "http" || referer.scheme == "https" - referer.scheme = nil - referer.host = nil - referer.port = nil - elsif referer.scheme || referer.host || referer.port + referer = nil if referer&.path&.first != "/" + rescue URI::InvalidURIError referer = nil end - referer = nil if referer&.path&.first != "/" + referer&.to_s + end - referer.to_s + def scope_enabled?(scope) + doorkeeper_token&.includes_scope?(scope) || current_token&.includes_scope?(scope) end + + helper_method :scope_enabled? end