Class: Rabarber::Core::Rule

Inherits:
Object
  • Object
show all
Defined in:
lib/rabarber/core/rule.rb

Instance Method Summary collapse

Constructor Details

#initialize(roles, context, dynamic_rule, negated_dynamic_rule) ⇒ Rule



10
11
12
13
14
15
# File 'lib/rabarber/core/rule.rb', line 10

def initialize(roles, context, dynamic_rule, negated_dynamic_rule)
  @roles = Array(roles)
  @context = context
  @dynamic_rule = dynamic_rule || DEFAULT_DYNAMIC_RULE
  @negated_dynamic_rule = negated_dynamic_rule || DEFAULT_NEGATED_DYNAMIC_RULE
end

Instance Method Details

#dynamic_rules_followed?(controller_instance) ⇒ Boolean



25
26
27
# File 'lib/rabarber/core/rule.rb', line 25

def dynamic_rules_followed?(controller_instance)
  execute_rule(controller_instance, @dynamic_rule) && !execute_rule(controller_instance, @negated_dynamic_rule)
end

#roles_permitted?(roleable, controller_instance) ⇒ Boolean



21
22
23
# File 'lib/rabarber/core/rule.rb', line 21

def roles_permitted?(roleable, controller_instance)
  @roles.empty? || roleable.has_role?(*@roles, context: resolve_context(controller_instance))
end

#verify_access(roleable, controller_instance) ⇒ Object



17
18
19
# File 'lib/rabarber/core/rule.rb', line 17

def verify_access(roleable, controller_instance)
  roles_permitted?(roleable, controller_instance) && dynamic_rules_followed?(controller_instance)
end