class PM::ObjectAttribute

An object attribute in a policy machine.

Public Class Methods

all(pm_storage_adapter, options = {}) click to toggle source
# File lib/policy_machine/policy_element.rb, line 196
def self.all(pm_storage_adapter, options = {})
  pm_storage_adapter.find_all_of_type_object_attribute(options).map do |stored_pe|
    convert_stored_pe_to_pe(stored_pe, pm_storage_adapter, PM::ObjectAttribute)
  end
end
create(unique_identifier, policy_machine_uuid, pm_storage_adapter, extra_attributes = {}) click to toggle source
# File lib/policy_machine/policy_element.rb, line 181
def self.create(unique_identifier, policy_machine_uuid, pm_storage_adapter, extra_attributes = {})
  new_pe = new(unique_identifier, policy_machine_uuid, pm_storage_adapter, nil, extra_attributes)
  new_pe.stored_pe = pm_storage_adapter.add_object_attribute(unique_identifier, policy_machine_uuid, extra_attributes)
  new_pe
end

Public Instance Methods

policy_classes() click to toggle source

Returns an array of policy classes in which this ObjectAttribute is included. Returns empty array if this ObjectAttribute is associated with no policy classes.

# File lib/policy_machine/policy_element.rb, line 189
def policy_classes
  pcs_for_object = @pm_storage_adapter.policy_classes_for_object_attribute(stored_pe)
  pcs_for_object.map do |stored_pc|
    self.class.convert_stored_pe_to_pe(stored_pc, @pm_storage_adapter, PM::PolicyClass)
  end
end

Protected Instance Methods

allowed_assignee_classes() click to toggle source
# File lib/policy_machine/policy_element.rb, line 203
def allowed_assignee_classes
  [ObjectAttribute, PolicyClass]
end