]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/application_controller.rb
Refactor the account edit/update pages out into a separate accounts controller
[rails.git] / app / controllers / application_controller.rb
index 0884964edffbd3498b6f6466626e4e8e78203dff..07b23ce21c814561c8266cff403a46874bb4cbb8 100644 (file)
@@ -381,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