Module: AnnotationSecurity::Rails
- Defined in:
- lib/annotation_security/rails.rb,
lib/annotation_security/rails/filters.rb,
lib/annotation_security/rails/extensions.rb,
lib/annotation_security/rails/2/initializer.rb,
lib/annotation_security/rails/3/initializer.rb,
lib/annotation_security/rails/2/model_observer.rb,
lib/annotation_security/rails/3/model_observer.rb
Overview
lib/annotation_security/rails/3/model_observer.rb
Contains SecurityObserver which implements constraint checking for model classes.
Defined Under Namespace
Modules: ActiveRecord, Filters Classes: ModelObserver, Railtie
Class Method Summary collapse
Class Method Details
.init!(config) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/annotation_security/rails/2/initializer.rb', line 8 def self.init!(config) puts "Initializing AnnotationSecurity security layer (v#{AnnotationSecurity::VERSION})" # Policy files are situated under RAILS_ROOT/config/security # Default policy file is internal, load it ::AnnotationSecurity.load_relations(File.dirname(__FILE__) + '/../../policy/all_resources_policy') # Add AnnotationSecurity::Rails::ModelObserver to observe changes in models. # See http://riotprojects.com/2009/1/18/active-record-observers-in-gems-plugins # config.after_initialize do # Set up a dummy security context that does not interfer with script ::SecurityContext.initialize nil ::ActiveRecord::Base.observers << ::AnnotationSecurity::Rails::ModelObserver # In development mode, the models we observe get reloaded with each request. Using # this hook allows us to reload the observer relationships each time as well. ::ActionController::Dispatcher.to_prepare(:cache_advance_reload) do ::AnnotationSecurity.reset ::AnnotationSecurity::Rails::ModelObserver.instance.reload_model_observer end end puts "Security layer initialized" end |