function let(User $user, Transition $transition, Workflow $workflow, Step $step, Permission $permission) { $this->beConstructedWith($user); $transition->getWorkflow()->willReturn($workflow); $workflow->getStep('step')->willReturn($step); $step->getPermission()->willReturn($permission); }
/** * Get role of current step. * * @param Transition $transition The transition being in. * @param Item $item The entity being transits. * * @return Permission|null */ protected function getStepPermission(Transition $transition, Item $item) { $stepName = $item->getCurrentStepName(); $step = $transition->getWorkflow()->getStep($stepName); $permission = $step->getPermission(); return $permission; }
/** * {@inheritdoc} */ public function match(Transition $transition, Item $item, Context $context, ErrorCollection $errorCollection) { $permission = Permission::forWorkflowName($transition->getWorkflow()->getName(), 'contao-admin'); if ($this->user->hasPermission($permission)) { return true; } return parent::match($transition, $item, $context, $errorCollection); }
function it_starts_a_new_workflow_state(EntityId $entityId, State $state, EntityId $entityId, Transition $transition, Workflow $workflow, Step $step, Context $context, ErrorCollection $errorCollection) { $transition->getWorkflow()->willReturn($workflow); $transition->getName()->willReturn('transition_name'); $transition->getStepTo()->willReturn($step); $context->getProperties()->willReturn(array()); $errorCollection->toArray()->willReturn(array()); $this->beConstructedThrough('initialize', array($entityId, static::$entity)); $this->start($transition, $context, $errorCollection, true)->shouldHaveType('Netzmacht\\Workflow\\Flow\\State'); }
/** * Create an initial state. * * @param EntityId $entityId The entity id. * @param Transition $transition The current executed transition. * @param Context $context The context. * @param ErrorCollection $errorCollection The error collection. * @param bool $success Success state. * * @return State */ public static function start(EntityId $entityId, Transition $transition, Context $context, ErrorCollection $errorCollection, $success) { $state = new State($entityId, $transition->getWorkflow()->getName(), $transition->getName(), $transition->getStepTo()->getName(), $success, $context->getProperties(), new \DateTime(), $errorCollection->toArray()); return $state; }