X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fcontent_moderation%2Fsrc%2FStateTransitionValidation.php;h=35d657e5503ac150e06764461e95185d42c547b6;hp=01b2ad8458200c1a2488aa7957343cf70f805858;hb=0bf8d09d2542548982e81a441b1f16e75873a04f;hpb=74df008bdbb3a11eeea356744f39b802369bda3c diff --git a/web/core/modules/content_moderation/src/StateTransitionValidation.php b/web/core/modules/content_moderation/src/StateTransitionValidation.php index 01b2ad845..35d657e55 100644 --- a/web/core/modules/content_moderation/src/StateTransitionValidation.php +++ b/web/core/modules/content_moderation/src/StateTransitionValidation.php @@ -4,7 +4,9 @@ namespace Drupal\content_moderation; use Drupal\Core\Entity\ContentEntityInterface; use Drupal\Core\Session\AccountInterface; +use Drupal\workflows\StateInterface; use Drupal\workflows\Transition; +use Drupal\workflows\WorkflowInterface; /** * Validates whether a certain state transition is allowed. @@ -47,4 +49,12 @@ class StateTransitionValidation implements StateTransitionValidationInterface { }); } + /** + * {@inheritdoc} + */ + public function isTransitionValid(WorkflowInterface $workflow, StateInterface $original_state, StateInterface $new_state, AccountInterface $user) { + $transition = $workflow->getTypePlugin()->getTransitionFromStateToState($original_state->id(), $new_state->id()); + return $user->hasPermission('use ' . $workflow->id() . ' transition ' . $transition->id()); + } + }