Class: AnnotationSecurity::Rails::Filters::ApplySecurity

Inherits:
Object
  • Object
show all
Defined in:
lib/annotation_security/rails/filters.rb

Overview

This filter is an around filter and is executed as the last filter before execution of action. It applies the security mechanisms.

Class Method Summary collapse

Class Method Details

.filter(controller) ⇒ Object

Applies security policies based on current user.



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

def self.filter(controller)
  ::ActiveRecord::Base.transaction do
    rules = controller.class.descriptions_of(controller.action_name)
    SecurityContext.current.eval_with_security(rules){ yield }
  end
rescue AnnotationSecurity::SecurityError
  SecurityContext.security_exception = $!
  raise $!
end