Module: Zena::Acts::SecureNode

Included in:
Node
Defined in:
lib/zena/acts/secure_node.rb

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Instance Method Summary collapse

Instance Method Details

#acts_as_secure_nodeObject

this is called when the module is extended into the Node class



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/zena/acts/secure_node.rb', line 6

def acts_as_secure_node
  belongs_to :rgroup, :class_name=>'Group', :foreign_key=>'rgroup_id'
  belongs_to :wgroup, :class_name=>'Group', :foreign_key=>'wgroup_id'
  belongs_to :dgroup, :class_name=>'Group', :foreign_key=>'dgroup_id'
  belongs_to :user
  before_validation  :secure_reference_before_validation
  # we move all before_validation on update and create here so that it is triggered before multiversion's before_validation
  before_validation  :secure_before_validation

  validate :record_must_be_secured
  #validate {|r| r.errors.add(:base, 'record not secured') unless r.instance_variable_get(:@visitor)}
  validate_on_update {|r| r.errors.add('site_id', 'cannot change') if r.site_id_changed? }

  validate_on_create :secure_on_create
  validate_on_update :secure_on_update

  before_save :secure_before_save
  after_save  :secure_after_save

  before_destroy :secure_on_destroy

  include Zena::Acts::SecureNode::InstanceMethods
  extend  Zena::Acts::SecureNode::ClassMethods
end