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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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.