Mercurial > hg > cmmr2012-drupal-site
diff core/modules/content_moderation/src/Permissions.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/content_moderation/src/Permissions.php Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,40 @@ +<?php + +namespace Drupal\content_moderation; + +use Drupal\Core\StringTranslation\StringTranslationTrait; +use Drupal\workflows\Entity\Workflow; + +/** + * Defines a class for dynamic permissions based on transitions. + * + * @internal + */ +class Permissions { + + use StringTranslationTrait; + + /** + * Returns an array of transition permissions. + * + * @return array + * The transition permissions. + */ + public function transitionPermissions() { + $permissions = []; + /** @var \Drupal\workflows\WorkflowInterface $workflow */ + foreach (Workflow::loadMultipleByType('content_moderation') as $id => $workflow) { + foreach ($workflow->getTypePlugin()->getTransitions() as $transition) { + $permissions['use ' . $workflow->id() . ' transition ' . $transition->id()] = [ + 'title' => $this->t('%workflow workflow: Use %transition transition.', [ + '%workflow' => $workflow->label(), + '%transition' => $transition->label(), + ]), + ]; + } + } + + return $permissions; + } + +}