public function ajaxEditDocumentAction() { /** * @var BackofficeAuthenticationService $auth * @var Logger $logger * @var \DDD\Domain\User\Document\Documents|bool $documentsDomain */ $auth = $this->getServiceLocator()->get('library_backoffice_auth'); $documentsDao = new Documents($this->getServiceLocator()); $logger = $this->getServiceLocator()->get('ActionLogger'); $request = $this->getRequest(); $result = ['status' => 'error', 'msg' => TextConstants::SERVER_ERROR]; try { $documentsDao->beginTransaction(); if (!$auth->hasRole(Roles::ROLE_PEOPLE_MANAGEMENT) && !$auth->hasRole(Roles::ROLE_PEOPLE_MANAGEMENT_HR)) { $result['msg'] = TextConstants::USER_DOCUMENT_CANNOT_BE_CREATE; } else { if ($request->isPost() && $request->isXmlHttpRequest()) { $documentId = $this->params()->fromRoute('id'); $documentFile = null; if (!is_null($request->getFiles('fileInfo'))) { $documentFile = $request->getFiles(); } $url = $request->getPost('url'); $data = ['creatorId' => $auth->getIdentity()->id, 'typeId' => $request->getPost('type_id'), 'file' => $documentFile, 'url' => !empty($url) ? $url : null, 'description' => $request->getPost('description')]; /** * @var \DDD\Service\User\Documents $userDocumentsService */ $userDocumentsService = $this->getServiceLocator()->get('service_user_documents'); $documentDomain = $userDocumentsService->getDocumentsData($documentId); $msg = "{$documentDomain->getType()} document was edited."; $userDocumentsService->addDocument($data, $documentId); $logger->save(Logger::MODULE_USER, $request->getPost('user_id'), Logger::ACTION_USER_DOCUMENT, $msg); $documentsDao->commitTransaction(); Helper::setFlashMessage(['success' => TextConstants::SUCCESS_UPDATE]); $result = ['status' => 'success', 'msg' => TextConstants::SUCCESS_UPDATE, 'userId' => $documentDomain->getUserId()]; } } } catch (\Exception $ex) { $documentsDao->rollbackTransaction(); } return new JsonModel($result); }