/** * Gets additional fields to render in the form to add/edit a task. * * Two extra fields are provided. One is used to define the context (FE, BE or both) * and one to select a LDAP configuration (or all). * * @param array $taskInfo Values of the fields from the add/edit task form * @param \TYPO3\CMS\Scheduler\Task\AbstractTask $task The task object being edited. Null when adding a task! * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $schedulerModule Reference to the scheduler backend module * @return array A two dimensional array, array('Identifier' => array('fieldId' => array('code' => '', 'label' => '', 'cshKey' => '', 'cshLabel' => '')) */ public function getAdditionalFields(array &$taskInfo, $task, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $schedulerModule) { /** @var \Causal\IgLdapSsoAuth\Task\ImportUsers $task */ $additionalFields = array(); // Process the mode field $parameters = array('field' => 'mode', 'label' => 'task.import_users.field.mode', 'options' => array('import' => 'LLL:task.import_users.field.mode.import', 'sync' => 'LLL:task.import_users.field.mode.sync'), 'value' => $task ? $task->getMode() : NULL, 'css' => 'wide'); $this->registerSelect($taskInfo, $schedulerModule->CMD, $parameters, $additionalFields); // Process the context field $parameters = array('field' => 'context', 'label' => 'task.import_users.field.context', 'options' => array('both' => 'LLL:task.import_users.field.context.both', 'FE' => 'LLL:task.import_users.field.context.fe', 'BE' => 'LLL:task.import_users.field.context.be'), 'value' => $task ? $task->getContext() : NULL); $this->registerSelect($taskInfo, $schedulerModule->CMD, $parameters, $additionalFields); // Process the configuration field $parameters = array('field' => 'configuration', 'label' => 'task.import_users.field.configuration', 'options' => array(0 => 'LLL:task.import_users.field.configuration.all'), 'value' => $task ? $task->getConfiguration() : NULL); // Get the existing LDAP configurations /** @var \Causal\IgLdapSsoAuth\Domain\Repository\ConfigurationRepository $configurationRepository */ $configurationRepository = GeneralUtility::makeInstance('Causal\\IgLdapSsoAuth\\Domain\\Repository\\ConfigurationRepository'); $ldapConfigurations = $configurationRepository->findAll(); foreach ($ldapConfigurations as $configuration) { $uid = $configuration->getUid(); $parameters['options'][$uid] = $configuration->getName(); } $this->registerSelect($taskInfo, $schedulerModule->CMD, $parameters, $additionalFields); // Process the missing user handling field $parameters = array('field' => 'missinguserhandling', 'label' => 'task.import_users.field.missinguserhandling', 'options' => array('nothing' => 'LLL:task.import_users.field.missinguserhandling.nothing', 'disable' => 'LLL:task.import_users.field.missinguserhandling.disable', 'delete' => 'LLL:task.import_users.field.missinguserhandling.delete'), 'value' => $task ? $task->getMissingUsersHandling() : NULL); $this->registerSelect($taskInfo, $schedulerModule->CMD, $parameters, $additionalFields); // Process the restored user handling field $parameters = array('field' => 'restoreduserhandling', 'label' => 'task.import_users.field.restoreduserhandling', 'options' => array('nothing' => 'LLL:task.import_users.field.restoreduserhandling.nothing', 'enable' => 'LLL:task.import_users.field.restoreduserhandling.enable', 'undelete' => 'LLL:task.import_users.field.restoreduserhandling.undelete', 'both' => 'LLL:task.import_users.field.restoreduserhandling.both'), 'value' => $task ? $task->getRestoredUsersHandling() : NULL); $this->registerSelect($taskInfo, $schedulerModule->CMD, $parameters, $additionalFields); return $additionalFields; }