class Garage::TokenScope::Ability
Public Class Methods
new(user, scopes = [])
click to toggle source
# File lib/garage/token_scope.rb, line 35 def initialize(user, scopes = []) @user = user @access = [] load_scopes(scopes) end
Public Instance Methods
access!(klass, action)
click to toggle source
# File lib/garage/token_scope.rb, line 56 def access!(klass, action) allow?(klass, action) or raise MissingScopeError.new(@user, action, klass, :forbidden, missing_scopes(klass, action)) end
allow?(klass, action)
click to toggle source
# File lib/garage/token_scope.rb, line 60 def allow?(klass, action) @access.include?([klass.to_s, action]) end
load_scope(scope)
click to toggle source
# File lib/garage/token_scope.rb, line 47 def load_scope(scope) scope = TokenScope.configuration.scopes[scope] if scope.is_a?(Symbol) @access.concat(scope.accessible_resources) end
load_scopes(scopes)
click to toggle source
# File lib/garage/token_scope.rb, line 41 def load_scopes(scopes) scopes.each do |scope| load_scope(scope) end end
missing_scopes(klass, action)
click to toggle source
# File lib/garage/token_scope.rb, line 52 def missing_scopes(klass, action) TokenScope.configuration.required_scopes(klass, action) end