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);
 }
Example #4
0
 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');
 }
Example #5
0
 /**
  * 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;
 }