Class: Checkpoint::Agent::Token

Inherits:
Object
  • Object
show all
Defined in:
lib/checkpoint/agent/token.rb

Overview

An Agent::Token is an identifier object for an Agent. It includes a type and an identifier. A Grant can be created for a Token. Concrete actors are resolved into a number of agents, and those agents’ tokens will be checked for matching grants.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, id) ⇒ Token

Create a new Agent Token representing an actor in an application.

Parameters:

  • type (String)

    the application-determined type of this agent. This will commonly be ‘user’ or ‘group’, but may be anything that identifies a type of authentication attribute, such as ‘account-type’. The type will be converted to a String if something else is supplied.

  • id (String)

    the application-resolvable identifier for this agent. This will commonly be username or group ID, but may be any value of an attribute of this type used to qualify an actor (user). The id will be converted to a String if something else is supplied.



22
23
24
25
# File 'lib/checkpoint/agent/token.rb', line 22

def initialize(type, id)
  @type = type.to_s
  @id = id.to_s
end

Instance Attribute Details

#idObject (readonly) Also known as: agent_id

Returns the value of attribute id.



10
11
12
# File 'lib/checkpoint/agent/token.rb', line 10

def id
  @id
end

#typeObject (readonly) Also known as: agent_type

Returns the value of attribute type.



10
11
12
# File 'lib/checkpoint/agent/token.rb', line 10

def type
  @type
end

Instance Method Details

#eql?(other) ⇒ Boolean Also known as: ==

Compare with another Agent for equality. Consider them to represent the same resource if ‘other` is an Agent, has the same type, and same id.

Returns:

  • (Boolean)


44
45
46
# File 'lib/checkpoint/agent/token.rb', line 44

def eql?(other)
  other.is_a?(Token) && type == other.type && id == other.id
end

#hashInteger

Returns hash code based on to_s.

Returns:

  • (Integer)

    hash code based on to_s



49
50
51
# File 'lib/checkpoint/agent/token.rb', line 49

def hash
  to_s.hash
end

#to_sString

Returns a token string suitable for granting or matching grants for this agent.

Returns:

  • (String)

    a token string suitable for granting or matching grants for this agent



38
39
40
# File 'lib/checkpoint/agent/token.rb', line 38

def to_s
  "#{type}:#{id}"
end

#tokenToken

Returns self; for convenience of taking an Agent or token.

Returns:

  • (Token)

    self; for convenience of taking an Agent or token



33
34
35
# File 'lib/checkpoint/agent/token.rb', line 33

def token
  self
end

#uriString Also known as: inspect

Returns a URI for this agent, including its type and id.

Returns:

  • (String)

    a URI for this agent, including its type and id



28
29
30
# File 'lib/checkpoint/agent/token.rb', line 28

def uri
  "agent://#{type}/#{id}"
end