diff --git a/core/modules/content_moderation/src/StateTransitionValidation.php b/core/modules/content_moderation/src/StateTransitionValidation.php index c4e26c2..ed9fde3 100644 --- a/core/modules/content_moderation/src/StateTransitionValidation.php +++ b/core/modules/content_moderation/src/StateTransitionValidation.php @@ -42,8 +42,9 @@ public function getValidTransitions(ContentEntityInterface $entity, AccountInter $workflow = $this->moderationInfo->getWorkflowForEntity($entity); $current_state = $entity->moderation_state->value ? $workflow->getState($entity->moderation_state->value) : $workflow->getInitialState(); - return array_filter($current_state->getTransitions(), function(Transition $transition) use ($workflow, $user) { - return $user->hasPermission('use ' . $workflow->id() . ' transition ' . $transition->id()); + return array_filter($current_state->getTransitions(), function(Transition $transition) use ($workflow, $user, $entity) { + return $user->hasPermission('use ' . $workflow->id() . ' transition ' . $transition->id()) + && !(!$transition->to()->isDefaultRevisionState() && $entity->isDefaultRevision() && $this->moderationInfo->hasForwardRevision($entity)); }); }