annotate vendor/chi-teck/drupal-code-generator/templates/d8/hook/node_access.twig @ 0:c75dbcec494b

Initial commit from drush-created site
author Chris Cannam
date Thu, 05 Jul 2018 14:24:15 +0000
parents
children
rev   line source
Chris@0 1 /**
Chris@0 2 * Implements hook_node_access().
Chris@0 3 */
Chris@0 4 function {{ machine_name }}_node_access(\Drupal\node\NodeInterface $node, $op, \Drupal\Core\Session\AccountInterface $account) {
Chris@0 5 $type = $node->bundle();
Chris@0 6
Chris@0 7 switch ($op) {
Chris@0 8 case 'create':
Chris@0 9 return AccessResult::allowedIfHasPermission($account, 'create ' . $type . ' content');
Chris@0 10
Chris@0 11 case 'update':
Chris@0 12 if ($account->hasPermission('edit any ' . $type . ' content', $account)) {
Chris@0 13 return AccessResult::allowed()->cachePerPermissions();
Chris@0 14 }
Chris@0 15 else {
Chris@0 16 return AccessResult::allowedIf($account->hasPermission('edit own ' . $type . ' content', $account) && ($account->id() == $node->getOwnerId()))->cachePerPermissions()->cachePerUser()->addCacheableDependency($node);
Chris@0 17 }
Chris@0 18
Chris@0 19 case 'delete':
Chris@0 20 if ($account->hasPermission('delete any ' . $type . ' content', $account)) {
Chris@0 21 return AccessResult::allowed()->cachePerPermissions();
Chris@0 22 }
Chris@0 23 else {
Chris@0 24 return AccessResult::allowedIf($account->hasPermission('delete own ' . $type . ' content', $account) && ($account->id() == $node->getOwnerId()))->cachePerPermissions()->cachePerUser()->addCacheableDependency($node);
Chris@0 25 }
Chris@0 26
Chris@0 27 default:
Chris@0 28 // No opinion.
Chris@0 29 return AccessResult::neutral();
Chris@0 30 }
Chris@0 31 }