Chris@0: moderationInfo = $moderation_info; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getValidTransitions(ContentEntityInterface $entity, AccountInterface $user) { Chris@0: $workflow = $this->moderationInfo->getWorkflowForEntity($entity); Chris@0: $current_state = $entity->moderation_state->value ? $workflow->getTypePlugin()->getState($entity->moderation_state->value) : $workflow->getTypePlugin()->getInitialState($entity); Chris@0: Chris@0: return array_filter($current_state->getTransitions(), function (Transition $transition) use ($workflow, $user) { Chris@0: return $user->hasPermission('use ' . $workflow->id() . ' transition ' . $transition->id()); Chris@0: }); Chris@0: } Chris@0: Chris@17: /** Chris@17: * {@inheritdoc} Chris@17: */ Chris@17: public function isTransitionValid(WorkflowInterface $workflow, StateInterface $original_state, StateInterface $new_state, AccountInterface $user, ContentEntityInterface $entity = NULL) { Chris@17: if ($entity === NULL) { Chris@17: @trigger_error(sprintf('Omitting the $entity parameter from %s is deprecated and will be required in Drupal 9.0.0.', __METHOD__), E_USER_DEPRECATED); Chris@17: } Chris@17: $transition = $workflow->getTypePlugin()->getTransitionFromStateToState($original_state->id(), $new_state->id()); Chris@17: return $user->hasPermission('use ' . $workflow->id() . ' transition ' . $transition->id()); Chris@17: } Chris@17: Chris@0: }