# 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