View source
<?php
namespace Drupal\support_ticket;
use Drupal\Core\Routing\UrlGeneratorTrait;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\support_ticket\Entity\SupportTicketType;
class SupportTicketPermissions {
use StringTranslationTrait;
use UrlGeneratorTrait;
public function supportTicketTypePermissions() {
$perms = array();
foreach (SupportTicketType::loadMultiple() as $type) {
$perms += $this
->buildPermissions($type);
}
return $perms;
}
protected function buildPermissions(SupportTicketType $type) {
$type_id = $type
->id();
$type_params = array(
'%type_name' => $type
->label(),
);
return array(
"create {$type_id} ticket" => array(
'title' => $this
->t('%type_name: Create new ticket', $type_params),
),
"edit own {$type_id} ticket" => array(
'title' => $this
->t('%type_name: Edit own ticket', $type_params),
),
"edit any {$type_id} ticket" => array(
'title' => $this
->t('%type_name: Edit any ticket', $type_params),
),
"delete own {$type_id} ticket" => array(
'title' => $this
->t('%type_name: Delete own ticket', $type_params),
),
"delete any {$type_id} ticket" => array(
'title' => $this
->t('%type_name: Delete any ticket', $type_params),
),
"view {$type_id} revisions" => array(
'title' => $this
->t('%type_name: View revisions', $type_params),
),
"modify locked {$type_id} ticket" => array(
'title' => $this
->t('%type_name: Modify locked ticket', $type_params),
),
"revert {$type_id} revisions" => array(
'title' => $this
->t('%type_name: Revert revisions', $type_params),
'description' => t('Role requires permission <em>view revisions</em> and <em>edit rights</em> for support tickets in question, or <em>administer support tickets</em>.'),
),
"delete {$type_id} revisions" => array(
'title' => $this
->t('%type_name: Delete revisions', $type_params),
'description' => $this
->t('Role requires permission to <em>view revisions</em> and <em>delete rights</em> for support tickets in question, or <em>administer support tickets</em>.'),
),
);
}
}