Chris@0: execute(); Chris@0: } Chris@0: catch (ContextException $e) { Chris@0: // If a condition is missing context and is not negated, consider that a Chris@0: // fail. Chris@0: $pass = $condition->isNegated(); Chris@0: } Chris@0: Chris@0: // If a condition fails and all conditions were needed, deny access. Chris@0: if (!$pass && $condition_logic == 'and') { Chris@0: return FALSE; Chris@0: } Chris@0: // If a condition passes and only one condition was needed, grant access. Chris@0: elseif ($pass && $condition_logic == 'or') { Chris@0: return TRUE; Chris@0: } Chris@0: } Chris@0: Chris@0: // Return TRUE if logic was 'and', meaning all rules passed. Chris@0: // Return FALSE if logic was 'or', meaning no rule passed. Chris@0: return $condition_logic == 'and'; Chris@0: } Chris@0: Chris@0: }