Mercurial > hg > cmmr2012-drupal-site
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 } |