Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / block_content / src / Access / AccessGroupAnd.php
diff --git a/web/core/modules/block_content/src/Access/AccessGroupAnd.php b/web/core/modules/block_content/src/Access/AccessGroupAnd.php
new file mode 100644 (file)
index 0000000..a2f3d1e
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+
+namespace Drupal\block_content\Access;
+
+use Drupal\Core\Access\AccessibleInterface;
+use Drupal\Core\Access\AccessResult;
+use Drupal\Core\Session\AccountInterface;
+
+/**
+ * An access group where all the dependencies must be allowed.
+ *
+ * @internal
+ */
+class AccessGroupAnd implements AccessibleInterface {
+
+  /**
+   * The access dependencies.
+   *
+   * @var \Drupal\Core\Access\AccessibleInterface[]
+   */
+  protected $dependencies = [];
+
+  /**
+   * {@inheritdoc}
+   */
+  public function addDependency(AccessibleInterface $dependency) {
+    $this->dependencies[] = $dependency;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function access($operation, AccountInterface $account = NULL, $return_as_object = FALSE) {
+    $access_result = AccessResult::neutral();
+    foreach (array_slice($this->dependencies, 1) as $dependency) {
+      $access_result = $access_result->andIf($dependency->access($operation, $account, TRUE));
+    }
+    return $return_as_object ? $access_result : $access_result->isAllowed();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDependencies() {
+    return $this->dependencies;
+  }
+
+}