Class: Caboose::AccessControl::AccessSentry

Inherits:
Object
  • Object
show all
Defined in:
lib/acl_system2/caboose/access_control.rb

Instance Method Summary collapse

Constructor Details

#initialize(subject, actions = {}) ⇒ AccessSentry

Returns a new instance of AccessSentry.



85
86
87
88
89
90
91
# File 'lib/acl_system2/caboose/access_control.rb', line 85

def initialize(subject, actions={})
  @actions = actions.inject({}) do |auth, current|
    [current.first].flatten.each { |action| auth[action] = current.last }
    auth
  end 
  @subject = subject
end

Instance Method Details

#allowed?(action) ⇒ Boolean

Returns:

  • (Boolean)


93
94
95
96
97
98
99
100
101
# File 'lib/acl_system2/caboose/access_control.rb', line 93

def allowed?(action)
  if @actions.has_key? action.to_sym
    return @subject.access_handler.process(@actions[action.to_sym].dup, @subject.access_context)
  elsif @actions.has_key? :DEFAULT
    return @subject.access_handler.process(@actions[:DEFAULT].dup, @subject.access_context) 
  else
    return true
  end  
end