Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Core/Access/AccessResultInterface.php @ 12:7a779792577d
Update Drupal core to v8.4.5 (via Composer)
author | Chris Cannam |
---|---|
date | Fri, 23 Feb 2018 15:52:07 +0000 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\Core\Access; /** * Interface for access result value objects. * * IMPORTANT NOTE: You have to call isAllowed() when you want to know whether * someone has access. Just using * @code * if ($access_result) { * // The user has access! * } * else { * // The user doesn't have access! * } * @endcode * would never enter the else-statement and hence introduce a critical security * issue. */ interface AccessResultInterface { /** * Checks whether this access result indicates access is explicitly allowed. * * @return bool * When TRUE then isForbidden() and isNeutral() are FALSE. */ public function isAllowed(); /** * Checks whether this access result indicates access is explicitly forbidden. * * This is a kill switch — both orIf() and andIf() will result in * isForbidden() if either results are isForbidden(). * * @return bool * When TRUE then isAllowed() and isNeutral() are FALSE. */ public function isForbidden(); /** * Checks whether this access result indicates access is not yet determined. * * @return bool * When TRUE then isAllowed() and isForbidden() are FALSE. */ public function isNeutral(); /** * 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: * @code * |A N F * --+----- * A |A A F * N |A N F * F |F F F * @endcode * * @param \Drupal\Core\Access\AccessResultInterface $other * The other access result to OR this one with. * * @return static */ public function orIf(AccessResultInterface $other); /** * Combine this access result with another using AND. * * When AND-ing two access results, the result is: * - isForbidden() in either ⇒ isForbidden() * - otherwise, if isAllowed() in both ⇒ isAllowed() * - otherwise, one of them is isNeutral() ⇒ isNeutral() * * Truth table: * @code * |A N F * --+----- * A |A N F * N |N N F * F |F F F * @endcode * * @param \Drupal\Core\Access\AccessResultInterface $other * The other access result to AND this one with. * * @return static */ public function andIf(AccessResultInterface $other); }