469de52b8a2c66d1bdb344038614e3102f55f648
[yaffs-website] / web / core / modules / block_content / src / Access / RefinableDependentAccessInterface.php
1 <?php
2
3 namespace Drupal\block_content\Access;
4
5 use Drupal\Core\Access\AccessibleInterface;
6
7 /**
8  * An interface to allow adding an access dependency.
9  *
10  * @internal
11  */
12 interface RefinableDependentAccessInterface extends DependentAccessInterface {
13
14   /**
15    * Sets the access dependency.
16    *
17    * If an access dependency is already set this will replace the existing
18    * dependency.
19    *
20    * @param \Drupal\Core\Access\AccessibleInterface $access_dependency
21    *   The object upon which access depends.
22    *
23    * @return $this
24    */
25   public function setAccessDependency(AccessibleInterface $access_dependency);
26
27   /**
28    * Adds an access dependency into the existing access dependency.
29    *
30    * If no existing dependency is currently set this will set the dependency
31    * will be set to the new value.
32    *
33    * If there is an existing dependency and it is not an instance of
34    * AccessGroupAnd the dependency will be set as a new AccessGroupAnd
35    * instance with the existing and new dependencies as the members of the
36    * group.
37    *
38    * If there is an existing dependency and it is a instance of AccessGroupAnd
39    * the dependency will be added to the existing access group.
40    *
41    * @param \Drupal\Core\Access\AccessibleInterface $access_dependency
42    *   The access dependency to merge.
43    *
44    * @return $this
45    */
46   public function addAccessDependency(AccessibleInterface $access_dependency);
47
48 }