Class: Rabarber::Core::Permissions

Inherits:
Object
  • Object
show all
Extended by:
Access
Includes:
Singleton
Defined in:
lib/rabarber/core/permissions.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Access

access_granted?, action_accessible?, controller_accessible?

Constructor Details

#initializePermissions

Returns a new instance of Permissions.



15
16
17
18
19
20
# File 'lib/rabarber/core/permissions.rb', line 15

def initialize
  @storage = {
    controller_rules: Hash.new { |h, k| h[k] = [] },
    action_rules: Hash.new { |h1, k1| h1[k1] = Hash.new { |h2, k2| h2[k2] = [] } }
  }
end

Instance Attribute Details

#storageObject (readonly)

Returns the value of attribute storage.



13
14
15
# File 'lib/rabarber/core/permissions.rb', line 13

def storage
  @storage
end

Class Method Details

.action_rulesObject



32
33
34
# File 'lib/rabarber/core/permissions.rb', line 32

def action_rules
  instance.storage[:action_rules]
end

.add(controller, action, roles, context, dynamic_rule, negated_dynamic_rule) ⇒ Object



23
24
25
26
# File 'lib/rabarber/core/permissions.rb', line 23

def add(controller, action, roles, context, dynamic_rule, negated_dynamic_rule)
  rule = Rabarber::Core::Rule.new(roles, context, dynamic_rule, negated_dynamic_rule)
  action ? action_rules[controller][action] << rule : controller_rules[controller] << rule
end

.controller_rulesObject



28
29
30
# File 'lib/rabarber/core/permissions.rb', line 28

def controller_rules
  instance.storage[:controller_rules]
end

.reset!Object



36
37
38
39
# File 'lib/rabarber/core/permissions.rb', line 36

def reset!
  instance.storage[:controller_rules].clear
  instance.storage[:action_rules].clear
end