class Checkpoint::DB::Query::CR

A query object based on credentials and resources.

This query finds grants for any supplied credentials, for any supplied resources. Its primary purpose is to find which agents have been granted a given credential on a resource.

It can take single items or arrays and converts them all to their tokens for query purposes.

Attributes

credentials[R]
resources[R]

Public Class Methods

new(credentials, resources, scope: Grant) click to toggle source
Calls superclass method Checkpoint::DB::CartesianSelect::new
# File lib/checkpoint/db/query/cr.rb, line 16
def initialize(credentials, resources, scope: Grant)
  super(scope: scope)
  @credentials = tokenize(credentials)
  @resources   = tokenize(resources)
end

Public Instance Methods

conditions() click to toggle source
# File lib/checkpoint/db/query/cr.rb, line 22
def conditions
  super.merge(
    credential_token: credential_params.placeholders,
    resource_token:   resource_params.placeholders
  )
end
parameters() click to toggle source
# File lib/checkpoint/db/query/cr.rb, line 29
def parameters
  super.merge(Hash[
    credential_params.values +
    resource_params.values
  ])
end

Protected Instance Methods

credential_params() click to toggle source
# File lib/checkpoint/db/query/cr.rb, line 38
def credential_params
  Params.new(credentials, 'ct')
end
resource_params() click to toggle source
# File lib/checkpoint/db/query/cr.rb, line 42
def resource_params
  Params.new(resources, 'rt')
end