示例#1
0
 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);
 }