This repository has been archived on 2025-01-19. You can view files and clone it, but cannot push or open issues or pull requests.
drupalcampbristol/core/modules/content_moderation/src/Permissions.php

44 lines
1.3 KiB
PHP

<?php
namespace Drupal\content_moderation;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\content_moderation\Entity\ModerationState;
use Drupal\content_moderation\Entity\ModerationStateTransition;
/**
* Defines a class for dynamic permissions based on transitions.
*/
class Permissions {
use StringTranslationTrait;
/**
* Returns an array of transition permissions.
*
* @return array
* The transition permissions.
*/
public function transitionPermissions() {
// @todo https://www.drupal.org/node/2779933 write a test for this.
$perms = [];
/* @var \Drupal\content_moderation\ModerationStateInterface[] $states */
$states = ModerationState::loadMultiple();
/* @var \Drupal\content_moderation\ModerationStateTransitionInterface $transition */
foreach (ModerationStateTransition::loadMultiple() as $id => $transition) {
$perms['use ' . $id . ' transition'] = [
'title' => $this->t('Use the %transition_name transition', [
'%transition_name' => $transition->label(),
]),
'description' => $this->t('Move content from %from state to %to state.', [
'%from' => $states[$transition->getFromState()]->label(),
'%to' => $states[$transition->getToState()]->label(),
]),
];
}
return $perms;
}
}