/** * @return WorkspaceRecord */ protected function getWorkspaceRecord() { return WorkspaceRecord::get($this->getWorkspaceId()); }
/** * Gets all assigned recipients of a particular stage. * * @param StageRecord|int $stageRecord * @return array */ protected function getReceipientsOfStage($stageRecord) { if (!$stageRecord instanceof StageRecord) { $stageRecord = WorkspaceRecord::get($this->getCurrentWorkspace())->getStage($stageRecord); } $result = array(); $allRecipients = $this->getStageService()->getResponsibleBeUser($stageRecord); $preselectedRecipients = $this->stageService->getPreselectedRecipients($stageRecord); $isPreselectionChangeable = $stageRecord->isPreselectionChangeable(); foreach ($allRecipients as $backendUserId => $backendUser) { if (empty($backendUser['email']) || !GeneralUtility::validEmail($backendUser['email'])) { continue; } $name = !empty($backendUser['realName']) ? $backendUser['realName'] : $backendUser['username']; $checked = in_array($backendUserId, $preselectedRecipients); $disabled = $checked && !$isPreselectionChangeable; $result[] = array('boxLabel' => sprintf('%s (%s)', $name, $backendUser['email']), 'name' => 'receipients-' . $backendUserId, 'checked' => $checked, 'disabled' => $disabled); } return $result; }
/** * @return bool */ public function isAllowed() { return $this->isEditStage() || static::getBackendUser()->workspaceCheckStageForCurrent($this->getUid()) || $this->isExecuteStage() && static::getBackendUser()->workspacePublishAccess($this->workspace->getUid()); }