You are here

public function UncacheableTestAccessResult::orIf in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Access/AccessResultTest.php \Drupal\Tests\Core\Access\UncacheableTestAccessResult::orIf()

Combine this access result with another using OR.

When OR-ing two access results, the result is:

  • isForbidden() in either ⇒ isForbidden()
  • otherwise if isAllowed() in either ⇒ isAllowed()
  • otherwise both must be isNeutral() ⇒ isNeutral()

Truth table:


  |A N F
--+-----
A |A A F
N |A N F
F |F F F

Parameters

\Drupal\Core\Access\AccessResultInterface $other: The other access result to OR this one with.

Return value

static

Overrides AccessResultInterface::orIf

File

core/tests/Drupal/Tests/Core/Access/AccessResultTest.php, line 1045
Contains \Drupal\Tests\Core\Access\AccessResultTest.

Class

UncacheableTestAccessResult

Namespace

Drupal\Tests\Core\Access

Code

public function orIf(AccessResultInterface $other) {
  if ($this
    ->isForbidden() || $other
    ->isForbidden()) {
    return new static('FORBIDDEN');
  }
  elseif ($this
    ->isAllowed() || $other
    ->isAllowed()) {
    return new static('ALLOWED');
  }
  else {
    return new static('NEUTRAL');
  }
}