Class: PM::User

Inherits:
PolicyElement show all
Defined in:
lib/policy_machine/policy_element.rb

Overview

TODO: there is repeated code in the following subclasses which I will DRY in the next PR. A user in a policy machine.

Instance Attribute Summary

Attributes inherited from PolicyElement

#extra_attributes, #policy_machine_uuid, #stored_pe, #unique_identifier

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from PolicyElement

#==, #assign_to, #connected?, convert_stored_pe_to_pe, #delete, #initialize, #inspect, #method_missing, #respond_to_missing?, #unassign, #update

Constructor Details

This class inherits a constructor from PM::PolicyElement

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class PM::PolicyElement

Class Method Details

.all(pm_storage_adapter, options = {}) ⇒ Object

Return all policy elements of a particular type (e.g. all users)



146
147
148
149
150
# File 'lib/policy_machine/policy_element.rb', line 146

def self.all(pm_storage_adapter, options = {})
  pm_storage_adapter.find_all_of_type_user(options).map do |stored_pe|
    convert_stored_pe_to_pe(stored_pe, pm_storage_adapter, PM::User)
  end
end

.create(unique_identifier, policy_machine_uuid, pm_storage_adapter, extra_attributes = {}) ⇒ Object



133
134
135
136
137
# File 'lib/policy_machine/policy_element.rb', line 133

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_user(unique_identifier, policy_machine_uuid, extra_attributes)
  new_pe
end

Instance Method Details

#user_attributes(pm_storage_adapter) ⇒ Object



139
140
141
142
143
# File 'lib/policy_machine/policy_element.rb', line 139

def user_attributes(pm_storage_adapter)
  pm_storage_adapter.user_attributes_for_user(stored_pe).map do |stored_ua|
    self.class.convert_stored_pe_to_pe(stored_ua, pm_storage_adapter, PM::UserAttribute)
  end
end