/** * @param StatusableInterface $document * * @return \OpenOrchestra\ApiBundle\Facade\StatusCollectionFacade */ protected function listStatuses(StatusableInterface $document) { $transitions = $document->getStatus()->getFromRoles(); $possibleStatuses = array(); foreach ($transitions as $transition) { $possibleStatuses[] = $transition->getToStatus(); } return $this->get('open_orchestra_api.transformer_manager')->get('status_collection')->transform($possibleStatuses, $document); }
/** * @param StatusableInterface $document * @param StatusInterface $toStatus * * @return bool */ public function isGranted(StatusableInterface $document, StatusInterface $toStatus) { $fromStatus = $document->getStatus(); if ($fromStatus->getId() != $toStatus->getId()) { $role = $this->roleRepository->findOneByFromStatusAndToStatus($fromStatus, $toStatus); $workflowFunctions = $this->workflowFunctionRepository->findByRole($role); foreach ($workflowFunctions as $workflowFunction) { if ($this->authorizationChecker->isGranted($workflowFunction->getId(), $document)) { return true; } } return false; } return true; }
/** * @param StatusableInterface $document * @param StatusInterface $toStatus * * @return bool */ public function isGranted(StatusableInterface $document, StatusInterface $toStatus) { $fromStatus = $document->getStatus(); $role = $this->roleRepository->findOneByFromStatusAndToStatus($fromStatus, $toStatus); return !($role && !$this->authorizationChecker->isGranted(array($role->getName()))); }
/** * @param NodeInterface $element * * @return array */ public function findAllCurrentlyPublishedByElementId(StatusableInterface $element) { return $this->findBy(array('nodeId' => $element->getNodeId(), 'language' => $element->getLanguage(), 'siteId' => $element->getSiteId(), 'currentlyPublished' => true)); }