def permitted?(person, action, context_binding)
      # Denial takes priority over allow
      return false if has_action_rule_match?(:deny, @action_deny_rules, person, action, context_binding)

      return true if has_action_rule_match?(:allow, @action_allow_rules, person, action, context_binding)

      # Default to no access if no rules match
      default_access = (@options[:default_access] || Permit::Config.default_access)
      return (default_access == :allow ? true : false)
    end
def permitted?(person, action, context_binding)
      # Denial takes priority over allow
      return false if has_action_rule_match?(:deny, @action_deny_rules, person, action, context_binding)

      return true if has_action_rule_match?(:allow, @action_allow_rules, person, action, context_binding)

      # Default to no access if no rules match
      default_access = (@options[:default_access] || Permit::Config.default_access)
      return (default_access == :allow ? true : false)
    end
@param [#info] logger the logger to use when evaluating rules
 @param [Hash] options the set of options to use during rule evaluation
 @option options [Symbol] :default_access overrides the value in
   Permit::Config#default_access to indicate how {#permitted?} will behave if
   no rules match.
 Determines if the person is permitted on the specified action by first
 evaluating deny rules, and then allow rules.  If the +:default_access+
 option is set then its value will be used instead of the value from
 Permit::Config#default_access.

 @param [permit_person] person the person to check for authorization
 @param [Symbol] action the action to check for authorization on.
 @param [Binding] context_binding the binding to use to locate the resource
   and/or process if/unless constraints.
 @return [true, false] true if the person is permitted on the given action,
   false otherwise.
 @raise [PermitEvaluationError] if an error occurs while evaluating one of
   the rules.