annotate vendor/chi-teck/drupal-code-generator/templates/d8/hook/node_access.twig @ 4:a9cd425dd02b
Update, including to Drupal core 8.6.10
author |
Chris Cannam |
date |
Thu, 28 Feb 2019 13:11:55 +0000 |
parents |
c75dbcec494b |
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 }
|