Class: ActionGuard::LevelRule

Inherits:
Object
  • Object
show all
Defined in:
lib/action-guard/rules.rb

Instance Method Summary collapse

Constructor Details

#initialize(allowed_level, role_leveler, &proc) ⇒ LevelRule

Returns a new instance of LevelRule.



13
14
15
16
17
# File 'lib/action-guard/rules.rb', line 13

def initialize(allowed_level, role_leveler, &proc)
  @role_leveler = role_leveler
  @allowed_level = allowed_level
  @additional_rule = proc
end

Instance Method Details

#allows?(person) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
# File 'lib/action-guard/rules.rb', line 19

def allows?(person)
  return false unless person
  return false unless @role_leveler.role(person.role) >= @role_leveler.role(@allowed_level)
  return true unless @additional_rule
  return @additional_rule.call(person)
end