Class: AnnotationSecurity::Rails::ModelObserver

Inherits:
ActiveRecord::Observer
  • Object
show all
Defined in:
lib/annotation_security/rails/2/model_observer.rb,
lib/annotation_security/rails/3/model_observer.rb

Overview

Observes changes in models and applies security policy to them

Instance Method Summary collapse

Instance Method Details

#after_initialize(record) ⇒ Object

after_find is removed in favour of after_initialize



28
29
30
31
32
33
34
35
# File 'lib/annotation_security/rails/2/model_observer.rb', line 28

def after_initialize(record)      
  if record.new_record?
    # The record is new
  else
    # The record came out of database
    SecurityContext.observe record
  end
end

#before_destroy(record) ⇒ Object



37
38
39
# File 'lib/annotation_security/rails/2/model_observer.rb', line 37

def before_destroy(record)
  SecurityContext.observe record
end

#before_validation_on_create(record) ⇒ Object

will be set automatically. However, observe must not be removed



18
19
20
# File 'lib/annotation_security/rails/2/model_observer.rb', line 18

def before_validation_on_create(record)
  SecurityContext.observe record
end

#before_validation_on_update(record) ⇒ Object



22
23
24
# File 'lib/annotation_security/rails/2/model_observer.rb', line 22

def before_validation_on_update(record)
  SecurityContext.observe record
end

#reload_model_observerObject

Re-register on classes you are observing See riotprojects.com/2009/1/18/active-record-observers-in-gems-plugins



44
45
46
47
48
# File 'lib/annotation_security/rails/2/model_observer.rb', line 44

def reload_model_observer
  observed_classes.each do |klass|
    add_observer!(klass.name.constantize)
  end
end