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