Pull merge.
[yaffs-website] / web / modules / contrib / entityqueue / src / EntityQueuePermissions.php
1 <?php
2
3 namespace Drupal\entityqueue;
4
5 use Drupal\entityqueue\Entity\EntityQueue;
6 use Drupal\Core\StringTranslation\StringTranslationTrait;
7
8 class EntityQueuePermissions {
9
10   use StringTranslationTrait;
11
12   /**
13    * @return array
14    */
15   public function permissions() {
16     $perms = [];
17     // Generate queue permissions for all queues.
18     foreach (EntityQueue::loadMultiple() as $queue) {
19       $perms += $this->buildPermissions($queue);
20     }
21
22     return $perms;
23   }
24
25   /**
26    * @param \Drupal\entityqueue\Entity\EntityQueue $queue
27    *
28    * @return array
29    */
30   public function buildPermissions(EntityQueue $queue) {
31     $queue_id = $queue->id();
32
33     if ($queue->getHandlerPlugin()->supportsMultipleSubqueues()) {
34       $permissions["create $queue_id entityqueue"] = [
35         'title' => $this->t('Add %queue subqueues', ['%queue' => $queue->label()]),
36         'description' => $this->t('Access to create new subqueue to the %queue queue.', ['%queue' => $queue->label()]),
37       ];
38       $permissions["delete $queue_id entityqueue"] = [
39         'title' => $this->t('Delete %queue subqueues', ['%queue' => $queue->label()]),
40         'description' => $this->t('Access to delete subqueues of the %queue queue.', ['%queue' => $queue->label()]),
41       ];
42     }
43
44     $permissions["update $queue_id entityqueue"] = [
45       'title' => $this->t('Manipulate %queue queue', ['%queue' => $queue->label()]),
46       'description' => $this->t('Access to update the %queue queue.', ['%queue' => $queue->label()]),
47     ];
48
49     return $permissions;
50   }
51
52 }