node_node_access(NodeInterface $node, $op, $account)
Implements hook_node_access().
Related topics
- Node access rights
- The node access system determines who can do what to which nodes.
File
- core/modules/node/node.module, line 903
- The core module that allows content to be submitted to the site.
Code
function node_node_access(NodeInterface $node, $op, $account) { $type = $node->bundle(); switch ($op) { case 'create': return AccessResult::allowedIfHasPermission($account, 'create ' . $type . ' content'); case 'update': if ($account->hasPermission('edit any ' . $type . ' content', $account)) { return AccessResult::allowed()->cachePerPermissions(); } else { return AccessResult::allowedIf($account->hasPermission('edit own ' . $type . ' content', $account) && ($account->id() == $node->getOwnerId()))->cachePerPermissions()->cachePerUser()->addCacheableDependency($node); } case 'delete': if ($account->hasPermission('delete any ' . $type . ' content', $account)) { return AccessResult::allowed()->cachePerPermissions(); } else { return AccessResult::allowedIf($account->hasPermission('delete own ' . $type . ' content', $account) && ($account->id() == $node->getOwnerId()))->cachePerPermissions()->cachePerUser()->addCacheableDependency($node); } default: // No opinion. return AccessResult::neutral(); } }
Please login to continue.