Mercurial > hg > isophonics-drupal-site
comparison core/lib/Drupal/Core/Access/AccessResultInterface.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Core\Access; | |
4 | |
5 /** | |
6 * Interface for access result value objects. | |
7 * | |
8 * IMPORTANT NOTE: You have to call isAllowed() when you want to know whether | |
9 * someone has access. Just using | |
10 * @code | |
11 * if ($access_result) { | |
12 * // The user has access! | |
13 * } | |
14 * else { | |
15 * // The user doesn't have access! | |
16 * } | |
17 * @endcode | |
18 * would never enter the else-statement and hence introduce a critical security | |
19 * issue. | |
20 */ | |
21 interface AccessResultInterface { | |
22 | |
23 /** | |
24 * Checks whether this access result indicates access is explicitly allowed. | |
25 * | |
26 * @return bool | |
27 * When TRUE then isForbidden() and isNeutral() are FALSE. | |
28 */ | |
29 public function isAllowed(); | |
30 | |
31 /** | |
32 * Checks whether this access result indicates access is explicitly forbidden. | |
33 * | |
34 * This is a kill switch — both orIf() and andIf() will result in | |
35 * isForbidden() if either results are isForbidden(). | |
36 * | |
37 * @return bool | |
38 * When TRUE then isAllowed() and isNeutral() are FALSE. | |
39 */ | |
40 public function isForbidden(); | |
41 | |
42 /** | |
43 * Checks whether this access result indicates access is not yet determined. | |
44 * | |
45 * @return bool | |
46 * When TRUE then isAllowed() and isForbidden() are FALSE. | |
47 */ | |
48 public function isNeutral(); | |
49 | |
50 /** | |
51 * Combine this access result with another using OR. | |
52 * | |
53 * When OR-ing two access results, the result is: | |
54 * - isForbidden() in either ⇒ isForbidden() | |
55 * - otherwise if isAllowed() in either ⇒ isAllowed() | |
56 * - otherwise both must be isNeutral() ⇒ isNeutral() | |
57 * | |
58 * Truth table: | |
59 * @code | |
60 * |A N F | |
61 * --+----- | |
62 * A |A A F | |
63 * N |A N F | |
64 * F |F F F | |
65 * @endcode | |
66 * | |
67 * @param \Drupal\Core\Access\AccessResultInterface $other | |
68 * The other access result to OR this one with. | |
69 * | |
70 * @return static | |
71 */ | |
72 public function orIf(AccessResultInterface $other); | |
73 | |
74 /** | |
75 * Combine this access result with another using AND. | |
76 * | |
77 * When AND-ing two access results, the result is: | |
78 * - isForbidden() in either ⇒ isForbidden() | |
79 * - otherwise, if isAllowed() in both ⇒ isAllowed() | |
80 * - otherwise, one of them is isNeutral() ⇒ isNeutral() | |
81 * | |
82 * Truth table: | |
83 * @code | |
84 * |A N F | |
85 * --+----- | |
86 * A |A N F | |
87 * N |N N F | |
88 * F |F F F | |
89 * @endcode | |
90 * | |
91 * @param \Drupal\Core\Access\AccessResultInterface $other | |
92 * The other access result to AND this one with. | |
93 * | |
94 * @return static | |
95 */ | |
96 public function andIf(AccessResultInterface $other); | |
97 | |
98 } |