Version 1
[yaffs-website] / web / core / modules / node / src / NodeAccessControlHandlerInterface.php
diff --git a/web/core/modules/node/src/NodeAccessControlHandlerInterface.php b/web/core/modules/node/src/NodeAccessControlHandlerInterface.php
new file mode 100644 (file)
index 0000000..7d407c1
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+
+namespace Drupal\node;
+
+use Drupal\Core\Session\AccountInterface;
+
+/**
+ * Node specific entity access control methods.
+ *
+ * @ingroup node_access
+ */
+interface NodeAccessControlHandlerInterface {
+
+  /**
+   * Gets the list of node access grants.
+   *
+   * This function is called to check the access grants for a node. It collects
+   * all node access grants for the node from hook_node_access_records()
+   * implementations, allows these grants to be altered via
+   * hook_node_access_records_alter() implementations, and returns the grants to
+   * the caller.
+   *
+   * @param \Drupal\node\NodeInterface $node
+   *   The $node to acquire grants for.
+   *
+   * @return array
+   *   The access rules for the node.
+   */
+  public function acquireGrants(NodeInterface $node);
+
+  /**
+   * Writes a list of grants to the database, deleting any previously saved ones.
+   *
+   * Modules that use node access can use this function when doing mass updates
+   * due to widespread permission changes.
+   *
+   * Note: Don't call this function directly from a contributed module. Call
+   * \Drupal\node\NodeAccessControlHandlerInterface::acquireGrants() instead.
+   *
+   * @param \Drupal\node\NodeInterface $node
+   *   The node whose grants are being written.
+   * @param $delete
+   *   (optional) If false, does not delete records. This is only for optimization
+   *   purposes, and assumes the caller has already performed a mass delete of
+   *   some form. Defaults to TRUE.
+   *
+   * @deprecated in Drupal 8.x, will be removed before Drupal 9.0.
+   *   Use \Drupal\node\NodeAccessControlHandlerInterface::acquireGrants().
+   */
+  public function writeGrants(NodeInterface $node, $delete = TRUE);
+
+  /**
+   * Creates the default node access grant entry on the grant storage.
+   */
+  public function writeDefaultGrant();
+
+  /**
+   * Deletes all node access entries.
+   */
+  public function deleteGrants();
+
+  /**
+   * Counts available node grants.
+   *
+   * @return int
+   *   Returns the amount of node grants.
+   */
+  public function countGrants();
+
+  /**
+   * Checks all grants for a given account.
+   *
+   * @param \Drupal\Core\Session\AccountInterface $account
+   *   A user object representing the user for whom the operation is to be
+   *   performed.
+   *
+   * @return int
+   *   Status of the access check.
+   */
+  public function checkAllGrants(AccountInterface $account);
+
+}