Updated all the contrib modules to their latest versions.
[yaffs-website] / web / modules / contrib / entityqueue / src / EntityQueueAccessControlHandler.php
1 <?php
2
3 namespace Drupal\entityqueue;
4
5 use Drupal\Core\Access\AccessResult;
6 use Drupal\Core\Entity\EntityAccessControlHandler;
7 use Drupal\Core\Entity\EntityInterface;
8 use Drupal\Core\Session\AccountInterface;
9
10 /**
11  * Defines the access control handler for the entity_queue entity type.
12  *
13  * @see \Drupal\entityqueue\Entity\EntityQueue
14  */
15 class EntityQueueAccessControlHandler extends EntityAccessControlHandler {
16
17   /**
18    * {@inheritdoc}
19    */
20   protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) {
21     /** @var \Drupal\entityqueue\EntitySubqueueInterface $entity */
22     switch ($operation) {
23       case 'view':
24         return AccessResult::allowedIfHasPermission($account, 'access content');
25         break;
26
27       case 'update':
28         return AccessResult::allowedIfHasPermissions($account, ["update {$entity->id()} entityqueue", 'manipulate all entityqueues', 'administer entityqueue'], 'OR');
29         break;
30
31       case 'delete':
32         return AccessResult::allowedIfHasPermissions($account, ["delete {$entity->id()} entityqueue", 'manipulate all entityqueues', 'administer entityqueue'], 'OR');
33         break;
34
35       default:
36         // No opinion.
37         return AccessResult::neutral();
38     }
39   }
40
41   /**
42    * {@inheritdoc}
43    */
44   protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) {
45     return AccessResult::allowedIfHasPermission($account, 'administer entityqueue');
46   }
47
48 }