class Thron::Gateway::AccessManager

Constants

PACKAGE

Public Class Methods

routes() click to toggle source
# File lib/thron/gateway/access_manager.rb, line 9
def self.routes
  @routes ||= {
    login: Route::factory(name: 'login', package: PACKAGE, params: [client_id]),
    logout: Route::factory(name: 'logout', package: PACKAGE, params: [client_id], type: Route::Types::PLAIN, accept: Route::Types::PLAIN),
    validate_capabilities: Route::factory(name: 'validateCapability', package: PACKAGE, params: [client_id], type: Route::Types::PLAIN, accept: Route::Types::PLAIN),
    validate_roles: Route::factory(name: 'validateRole', package: PACKAGE, params: [client_id], type: Route::Types::PLAIN, accept: Route::Types::PLAIN),
    validate_token: Route::factory(name: 'validateToken', package: PACKAGE, params: [client_id])
  }
end

Public Instance Methods

login(options = {}) click to toggle source
# File lib/thron/gateway/access_manager.rb, line 19
def login(options = {})
  query = {
    username: options[:username],
    password: options[:password]
  }
  route(to: __callee__, query: query, dash: false) do |response|
    response.body = Entity::Base::factory(response.body)
    @token_id = response.body.token_id
  end
end
logout() click to toggle source
# File lib/thron/gateway/access_manager.rb, line 30
def logout
  check_session
  route(to: __callee__, token_id: token_id, dash: false) do |response|
    @token_id = nil
  end
end
validate_capabilities(options = {}) click to toggle source
# File lib/thron/gateway/access_manager.rb, line 37
def validate_capabilities(options = {})
  capabilities = options.fetch(:capabilities) { [] }
  check_session
  query = {
    capabilities: capabilities.join(',')
  }
  route(to: __callee__, query: query, token_id: @token_id, dash: false)
end
validate_roles(options = {}) click to toggle source
# File lib/thron/gateway/access_manager.rb, line 46
def validate_roles(options = {})
  roles = options.fetch(:roles) { [] }
  xor = options.fetch(:xor) { false }
  check_session
  separator = xor ? '|' : ','
  query = {
    role: roles.join(separator)
  }
  route(to: __callee__, query: query, token_id: @token_id, dash: false)
end
validate_token(options = {}) click to toggle source
# File lib/thron/gateway/access_manager.rb, line 57
def validate_token(options = {})
  username = options[:username]
  check_session
  query = {
    username: username
  }
  route(to: __callee__, query: query, token_id: @token_id, dash: false) do |response|
    response.body = Entity::Base::factory(response.body)
  end
end