class Subledger::Domain::Identity

Attributes

email[RW]

Public Class Methods

active_klass() click to toggle source
# File lib/subledger/domain/identity.rb, line 49
def self.active_klass
  ActiveIdentity
end
archived_klass() click to toggle source
# File lib/subledger/domain/identity.rb, line 45
def self.archived_klass
  ArchivedIdentity
end
create(args) click to toggle source
# File lib/subledger/domain/identity.rb, line 53
def self.create args
  validate_creatability args

  identity = args[:client].send active_klass.collection_name, args

  args[:store].create_identity identity
end
new(args) click to toggle source
# File lib/subledger/domain/identity.rb, line 69
def initialize args
  describable args
  identifiable args
  storable args
  versionable args

  @email = args[:email]
end
patch_keys() click to toggle source
# File lib/subledger/domain/identity.rb, line 33
def self.patch_keys
  [ :id, :email, :description, :reference, :version ]
end
post_keys() click to toggle source
# File lib/subledger/domain/identity.rb, line 29
def self.post_keys
  [ :id, :email, :description, :reference ]
end
root_klass() click to toggle source
# File lib/subledger/domain/identity.rb, line 37
def self.root_klass
  Identity
end
sub_klasses() click to toggle source
# File lib/subledger/domain/identity.rb, line 41
def self.sub_klasses
  [ archived_klass, active_klass ]
end

Private Class Methods

raise_unless_creatable(args) click to toggle source
# File lib/subledger/domain/identity.rb, line 135
def self.raise_unless_creatable args
  unless ValidateEmail.mx_valid? args[:email]
    raise IdentityError, ':email is required and must have an MX record for the domain'
  end
end

Public Instance Methods

authorize(verb, url) click to toggle source

def by_org org

# TODO look in OrgIdentities table

end

# File lib/subledger/domain/identity.rb, line 86
def authorize verb, url
  raise KeyError if @retired

  controls.each do |control|
    return true if control.match(verb, url) unless control.revoked?
  end

  false
end
create() click to toggle source
# File lib/subledger/domain/identity.rb, line 61
def create
  identity, key = self.class.create self.attributes

  initialize identity.attributes

  return self, key
end