Mercurial > hg > isophonics-drupal-site
diff core/modules/node/src/NodeAccessControlHandlerInterface.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/node/src/NodeAccessControlHandlerInterface.php Wed Nov 29 16:09:58 2017 +0000 @@ -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); + +}