Class: AnnotationSecurity::Rails::ModelObserver
- Inherits:
-
ActiveRecord::Observer
- Object
- ActiveRecord::Observer
- AnnotationSecurity::Rails::ModelObserver
- 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
-
#after_initialize(record) ⇒ Object
after_find is removed in favour of after_initialize.
- #before_destroy(record) ⇒ Object
-
#before_validation_on_create(record) ⇒ Object
will be set automatically.
- #before_validation_on_update(record) ⇒ Object
-
#reload_model_observer ⇒ Object
Re-register on classes you are observing See riotprojects.com/2009/1/18/active-record-observers-in-gems-plugins.
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_observer ⇒ Object
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 |