/** * prepare organizations for display * * * @access public * @param array $organizationsArray * @return array organizations prepared for display */ public function prepareForDisplay($organizationsArray) { $OSArray = OrganizationEntity::getOSs(); $langsArray = OrganizationEntity::getStaticLangs(); $officeVersionsArray = OrganizationEntity::getOfficeVersions(); foreach ($organizationsArray as $organization) { switch ($organization->type) { case OrganizationEntity::TYPE_ATC: $organization->typeText = "ATC"; break; case OrganizationEntity::TYPE_ATP: $organization->typeText = "ATP"; break; case OrganizationEntity::TYPE_BOTH: $organization->typeText = "ATC/ATP"; break; } if (array_key_exists($organization->officeLang, $langsArray)) { $organization->officeLangText = $langsArray[$organization->officeLang]; } if (array_key_exists($organization->operatingSystemLang, $langsArray)) { $organization->operatingSystemLangText = $langsArray[$organization->operatingSystemLang]; } if (array_key_exists($organization->officeVersion, $officeVersionsArray)) { $organization->officeVersionText = $officeVersionsArray[$organization->officeVersion]; } if (array_key_exists($organization->operatingSystem, $OSArray)) { $organization->operatingSystemText = $OSArray[$organization->operatingSystem]; } } return $organizationsArray; }
/** * more details of an ATC * * * @access public * * @return ViewModel */ public function editAction() { $variables = array(); $id = $this->params('id'); $query = $this->getServiceLocator()->get('wrapperQuery'); $orgsQuery = $this->getServiceLocator()->get('wrapperQuery')->setEntity('Organizations\\Entity\\Organization'); $orgObj = $query->find('Organizations\\Entity\\Organization', $id); $orgModel = $this->getServiceLocator()->get('Organizations\\Model\\Organization'); $rolesArray = $orgModel->getRequiredRoles($orgObj->getType()); $validationResult = $this->getServiceLocator()->get('aclValidator')->validateOrganizationAccessControl($this->getResponse(), $rolesArray, $orgObj); if ($validationResult["isValid"] === false && !empty($validationResult["redirectUrl"])) { return $this->redirect()->toUrl($validationResult["redirectUrl"]); } // for checking on attachments $crAttachment = $orgObj->CRAttachment; $atcLicenseAttachment = $orgObj->atcLicenseAttachment; $atpLicenseAttachment = $orgObj->atpLicenseAttachment; $oldStatus = $orgObj->getStatus(); $auth = new AuthenticationService(); $storage = $auth->getIdentity(); $isAdminUser = false; if ($auth->hasIdentity()) { if (in_array(Role::ADMIN_ROLE, $storage['roles'])) { $isAdminUser = true; } } // allow access for admins for all users // restrict access for current user only for non-admin users $options = array(); $options['query'] = $query; $options['staticLangs'] = OrgEntity::getStaticLangs(); $options['staticOss'] = OrgEntity::getOSs(); $options['staticOfficeVersions'] = OrgEntity::getOfficeVersions(); $atcSkippedParams = $this->getServiceLocator()->get('Config')['atcSkippedParams']; $atpSkippedParams = $this->getServiceLocator()->get('Config')['atpSkippedParams']; $form = new orgForm(null, $options); $form->bind($orgObj); $request = $this->getRequest(); if ($request->isPost()) { // Make certain to merge the files info! // $fileData = $request->getFiles()->toArray(); $fileData = $request->getFiles()->toArray(); $data = array_merge_recursive($request->getPost()->toArray(), $fileData); $form->setInputFilter($orgObj->getInputFilter($orgsQuery->setEntity("Organizations\\Entity\\Organization"))); $inputFilter = $form->getInputFilter(); $form->setData($data); // file not updated if (isset($fileData['CRAttachment']['name']) && empty($fileData['CRAttachment']['name'])) { // Change required flag to false for any previously uploaded files $input = $inputFilter->get('CRAttachment'); $input->setRequired(false); } if (isset($fileData['wireTransferAttachment']['name']) && empty($fileData['wireTransferAttachment']['name'])) { // Change required flag to false for any previously uploaded files $input = $inputFilter->get('wireTransferAttachment'); $input->setRequired(false); } if (isset($fileData['atcLicenseAttachment']['name']) && empty($fileData['atcLicenseAttachment']['name'])) { // Change required flag to false for any previously uploaded files $input = $inputFilter->get('atcLicenseAttachment'); $input->setRequired(false); } if (isset($fileData['atpLicenseAttachment']['name']) && empty($fileData['atpLicenseAttachment']['name'])) { // Change required flag to false for any previously uploaded files $input = $inputFilter->get('atpLicenseAttachment'); $input->setRequired(false); } switch ($data['type']) { case '1': array_push($atcSkippedParams, 'testCenterAdmin_id'); foreach ($atcSkippedParams as $param) { $inputFilter->get($param)->setRequired(false); $data[$param] = null; } break; case '2': array_push($atcSkippedParams, 'trainingManager_id'); foreach ($atpSkippedParams as $param) { $inputFilter->get($param)->setRequired(false); $data[$param] = null; } break; } if ($form->isValid()) { $orgModel->saveOrganization($data, $orgObj, $oldStatus, null, null, $isAdminUser); // redirecting if ($data['type'] == 1) { $url = $this->getEvent()->getRouter()->assemble(array('action' => 'atps'), array('name' => 'list_atc_orgs')); } else { if ($data['type'] == 2 || $data['type'] == 3) { $url = $this->getEvent()->getRouter()->assemble(array('action' => 'atcs'), array('name' => 'list_atp_orgs')); } } $this->redirect()->toUrl($url); } } $variables['wireTransferAttachment'] = $crAttachment; $variables['CRAttachment'] = $crAttachment; $variables['atpLicenseAttachment'] = $atpLicenseAttachment; $variables['atcLicenseAttachment'] = $atcLicenseAttachment; $variables['organizationForm'] = $this->getFormView($form); $organizationArray = array($orgObj); $versionModel = $this->getServiceLocator()->get('Versioning\\Model\\Version'); $organizationLogs = $versionModel->getLogEntriesPerEntities($organizationArray, array(), null, Status::STATUS_NOT_APPROVED); $hasPendingChanges = count($organizationLogs) > 0 ? true : false; $pendingUrl = $this->getEvent()->getRouter()->assemble(array('id' => $id), array('name' => 'organizationsPending')); $variables['messages'] = $versionModel->getPendingMessages($hasPendingChanges, $pendingUrl); return new ViewModel($variables); }