class Doorkeeper::OAuth::Scopes
Constants
- DYNAMIC_SCOPE_WILDCARD
Public Class Methods
from_array(array)
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 18 def self.from_array(array) new.tap do |scope| scope.add(*array) end end
from_string(string)
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 11 def self.from_string(string) string ||= "" new.tap do |scope| scope.add(*string.split) end end
new()
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 26 def initialize @scopes = [] end
Public Instance Methods
&(other)
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 73 def &(other) self.class.from_array(all & to_array(other)) end
+(other)
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 61 def +(other) self.class.from_array(all + to_array(other)) end
<=>(other)
click to toggle source
Calls superclass method
# File lib/doorkeeper/oauth/scopes.rb, line 65 def <=>(other) if other.respond_to?(:map) map(&:to_s).sort <=> other.map(&:to_s).sort else super end end
add(*scopes)
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 42 def add(*scopes) @scopes.push(*scopes.map(&:to_s)) @scopes.uniq! end
all()
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 47 def all @scopes end
exists?(scope)
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 30 def exists?(scope) scope = scope.to_s @scopes.any? do |allowed_scope| if dynamic_scopes_enabled? && dynamic_scopes_present?(allowed_scope, scope) dynamic_scope_match?(allowed_scope, scope) else allowed_scope == scope end end end
scopes?(scopes)
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 55 def scopes?(scopes) scopes.all? { |scope| exists?(scope) } end
Also aliased as: has_scopes?
to_s()
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 51 def to_s @scopes.join(" ") end
Private Instance Methods
dynamic_scope_delimiter()
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 83 def dynamic_scope_delimiter return unless dynamic_scopes_enabled? @dynamic_scope_delimiter ||= Doorkeeper.config.dynamic_scopes_delimiter end
dynamic_scope_match?(allowed, requested)
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 93 def dynamic_scope_match?(allowed, requested) allowed_pattern = allowed.split(dynamic_scope_delimiter, 2) request_pattern = requested.split(dynamic_scope_delimiter, 2) return false if allowed_pattern[0] != request_pattern[0] return false if allowed_pattern[1].blank? return false if request_pattern[1].blank? return true if allowed_pattern[1] == DYNAMIC_SCOPE_WILDCARD && allowed_pattern[1].present? allowed_pattern[1] == request_pattern[1] end
dynamic_scopes_enabled?()
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 79 def dynamic_scopes_enabled? Doorkeeper.config.enable_dynamic_scopes? end
dynamic_scopes_present?(allowed, requested)
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 89 def dynamic_scopes_present?(allowed, requested) allowed.include?(dynamic_scope_delimiter) && requested.include?(dynamic_scope_delimiter) end
to_array(other)
click to toggle source
# File lib/doorkeeper/oauth/scopes.rb, line 105 def to_array(other) case other when Scopes other.all else other.to_a end end