diff --git a/rest/index.php b/rest/index.php index 6563d43e759fd375331a6e22ef7678c13a76e7c2..36dae4ced8e48f8f002a3c6d4c7cde9616dd8b13 100755 --- a/rest/index.php +++ b/rest/index.php @@ -530,10 +530,10 @@ $app->get('/administration/notifications/new', \Notification\controllers\Notific $app->get('/notifications/{id}', \Notification\controllers\NotificationController::class . ':getBySid'); $app->post('/scriptNotification', \Notification\controllers\NotificationScheduleController::class . ':createScriptNotification'); -$app->post('/saveNumericPackage', \MessageExchange\Controllers\ReceiveMessageExchangeController::class . ':saveMessageExchange'); -$app->post('/saveMessageExchangeReturn', \MessageExchange\Controllers\ReceiveMessageExchangeController::class . ':saveMessageExchangeReturn'); -$app->post('/saveMessageExchangeReview', \MessageExchange\Controllers\MessageExchangeReviewController::class . ':saveMessageExchangeReview'); -$app->post('/resources/{resId}/messageExchange', \MessageExchange\Controllers\SendMessageExchangeController::class . ':createMessageExchangeReview'); +$app->post('/saveNumericPackage', \MessageExchange\controllers\ReceiveMessageExchangeController::class . ':saveMessageExchange'); +$app->post('/saveMessageExchangeReturn', \MessageExchange\controllers\ReceiveMessageExchangeController::class . ':saveMessageExchangeReturn'); +$app->post('/saveMessageExchangeReview', \MessageExchange\controllers\MessageExchangeReviewController::class . ':saveMessageExchangeReview'); +$app->post('/resources/{resId}/messageExchange', \MessageExchange\controllers\SendMessageExchangeController::class . ':createMessageExchange'); //ExternalSignatoryBooks $app->get('/maarchParapheur/user/{id}/picture', \ExternalSignatoryBook\controllers\MaarchParapheurController::class . ':getUserPicture'); diff --git a/src/app/external/messageExchange/controllers/MessageExchangeReviewController.php b/src/app/external/messageExchange/controllers/MessageExchangeReviewController.php index 35d1e7b73724d35a008f0fffb9e2acc72e45903c..87987fcbb44285bc2445fb61c8bba132f5054a75 100755 --- a/src/app/external/messageExchange/controllers/MessageExchangeReviewController.php +++ b/src/app/external/messageExchange/controllers/MessageExchangeReviewController.php @@ -16,12 +16,14 @@ namespace MessageExchange\controllers; use Action\models\ActionModel; use ExportSeda\controllers\SendMessageController; -use MessageExchange\Controllers\ReceiveMessageExchangeController; +use MessageExchange\controllers\ReceiveMessageExchangeController; use MessageExchange\controllers\SendMessageExchangeController; use MessageExchange\models\MessageExchangeModel; use Resource\models\ResModel; use SrcCore\models\CoreConfigModel; use User\models\UserModel; +use Slim\Http\Request; +use Slim\Http\Response; require_once 'modules/export_seda/Controllers/ReceiveMessage.php'; diff --git a/src/app/external/messageExchange/controllers/ReceiveMessageExchangeController.php b/src/app/external/messageExchange/controllers/ReceiveMessageExchangeController.php index a373e2df9dec906fc0830d4713e160e424999a18..4d9244dd57cb8a995d3b43a5b652970ff1201755 100755 --- a/src/app/external/messageExchange/controllers/ReceiveMessageExchangeController.php +++ b/src/app/external/messageExchange/controllers/ReceiveMessageExchangeController.php @@ -13,7 +13,7 @@ * @ingroup core */ -namespace MessageExchange\Controllers; +namespace MessageExchange\controllers; use Basket\models\BasketModel; use Contact\models\ContactModel; @@ -42,10 +42,6 @@ class ReceiveMessageExchangeController return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } - if (empty($GLOBALS['userId'])) { - return $response->withStatus(401)->withJson(['errors' => 'User Not Connected']); - } - $data = $request->getParams(); $this->addComment('['.date("d/m/Y H:i:s") . '] Réception du pli numérique'); @@ -432,9 +428,7 @@ class ReceiveMessageExchangeController } $acknowledgementObject->MessageIdentifier->value = $dataObject->MessageIdentifier->value . '_Ack'; - $tmpPath = CoreConfigModel::getTmpPath(); - $filePath = SendMessageController::generateMessageFile($acknowledgementObject, 'Acknowledgement', $tmpPath); - + $filePath = SendMessageController::generateMessageFile(['messageObject' => $acknowledgementObject, 'type' => 'Acknowledgement']); $acknowledgementObject->ArchivalAgency = $acknowledgementObject->Receiver; $acknowledgementObject->TransferringAgency = $acknowledgementObject->Sender; @@ -477,9 +471,7 @@ class ReceiveMessageExchangeController $replyObject->ArchivalAgency = $dataObject->TransferringAgency; $replyObject->MessageIdentifier->value = $dataObject->MessageIdentifier->value . '_Reply'; - $tmpPath = CoreConfigModel::getTmpPath(); - $filePath = SendMessageController::generateMessageFile($replyObject, "ArchiveTransferReply", $tmpPath); - + $filePath = SendMessageController::generateMessageFile(['messageObject' => $replyObject, 'type' => 'ArchiveTransferReply']); $replyObject->MessageIdentifier->value = $dataObject->MessageIdentifier->value . '_ReplySent'; $messageExchangeSaved = SendMessageExchangeController::saveMessageExchange(['dataObject' => $replyObject, 'res_id_master' => $aArgs['res_id_master'], 'type' => 'ArchiveTransferReply', 'file_path' => $filePath]); diff --git a/src/app/external/messageExchange/controllers/SendMessageExchangeController.php b/src/app/external/messageExchange/controllers/SendMessageExchangeController.php index 45aa45d03ef6d13987f4a9f0a43f27a32424516a..a5d429ed5622f7311c2db653de86f67edc3794f3 100755 --- a/src/app/external/messageExchange/controllers/SendMessageExchangeController.php +++ b/src/app/external/messageExchange/controllers/SendMessageExchangeController.php @@ -20,14 +20,19 @@ use Docserver\models\DocserverModel; use Doctype\models\DoctypeModel; use Entity\models\EntityModel; use ExportSeda\controllers\SendMessageController; +use Group\controllers\PrivilegeController; use History\controllers\HistoryController; -use MessageExchange\Controllers\ReceiveMessageExchangeController; +use MessageExchange\controllers\ReceiveMessageExchangeController; use MessageExchange\models\MessageExchangeModel; use Note\models\NoteModel; +use Resource\controllers\ResController; use Resource\models\ResModel; +use Respect\Validation\Validator; use SrcCore\models\TextFormatModel; use Status\models\StatusModel; use User\models\UserModel; +use Slim\Http\Request; +use Slim\Http\Response; class SendMessageExchangeController { @@ -110,14 +115,14 @@ class SendMessageExchangeController $errors = self::control($body); if (!empty($errors)) { - return ['errors' => $errors]; + return $response->withStatus(400)->withJson(['errors' => $errors]); } /***************** GET MAIL INFOS *****************/ $AllUserEntities = EntityModel::getWithUserEntities(['where' => ['user_id = ?', 'business_id != \'\''], 'data' => [$GLOBALS['userId']]]); foreach ($AllUserEntities as $value) { - if ($value['entity_id'] == $body['senderEmail']) { + if ($value['id'] == $body['senderEmail']) { $TransferringAgencyInformations = $value; break; } @@ -127,8 +132,8 @@ class SendMessageExchangeController return ['errors' => "no sender"]; } - $AllInfoMainMail = ResModel::getById(['resId' => $args['resId']]); - $doctype = DoctypeModel::getById(['select' => ['description'], 'id' => $AllInfoMainMail['doctype']]); + $AllInfoMainMail = ResModel::getById(['select' => ['*'], 'resId' => $args['resId']]); + $doctype = DoctypeModel::getById(['select' => ['description'], 'id' => $AllInfoMainMail['type_id']]); $tmpMainExchangeDoc = explode("__", $body['mainExchangeDoc']); $MainExchangeDoc = ['tablename' => $tmpMainExchangeDoc[0], 'res_id' => $tmpMainExchangeDoc[1]]; @@ -143,17 +148,18 @@ class SendMessageExchangeController } if ($MainExchangeDoc['tablename'] == 'res_attachments') { - $body['join_attachment'][] = $MainExchangeDoc['res_id']; + $body['joinAttachment'][] = $MainExchangeDoc['res_id']; } /**************** GET ATTACHMENTS INFOS ***************/ $AttachmentsInfo = []; if (!empty($body['joinAttachment'])) { $AttachmentsInfo = AttachmentModel::get(['select' => ['*'], 'where' => ['res_id in (?)'], 'data' => [$body['joinAttachment']]]); + $attachmentTypes = AttachmentModel::getAttachmentsTypesByXML(); foreach ($AttachmentsInfo as $key => $value) { $AttachmentsInfo[$key]['Title'] = $value['title']; $AttachmentsInfo[$key]['OriginatingAgencyArchiveUnitIdentifier'] = $value['identifier']; - $AttachmentsInfo[$key]['DocumentType'] = $_SESSION['attachment_types'][$value['attachment_type']]; + $AttachmentsInfo[$key]['DocumentType'] = $attachmentTypes[$value['attachment_type']]['label']; $AttachmentsInfo[$key]['tablenameExchangeMessage'] = 'res_attachments'; } } @@ -194,15 +200,25 @@ class SendMessageExchangeController foreach ($body['contacts'] as $contactId) { /******** GET ARCHIVAl INFORMATIONs **************/ - $ArchivalAgencyCommunicationType = ContactModel::getContactCommunication(['contactId' => $contactId]); - $ArchivalAgencyContactInformations = ContactModel::getById(['id' => $contactId]); + $communicationType = ContactModel::getById(['select' => ['communication_means'], 'id' => $contactId]); + $aArchivalAgencyCommunicationType = json_decode($communicationType['communication_means'], true); + if (!empty($aArchivalAgencyCommunicationType)) { + if (!empty($aArchivalAgencyCommunicationType['email'])) { + $ArchivalAgencyCommunicationType['type'] = 'email'; + $ArchivalAgencyCommunicationType['value'] = $aArchivalAgencyCommunicationType['email']; + } else { + $ArchivalAgencyCommunicationType['type'] = 'url'; + $ArchivalAgencyCommunicationType['value'] = rtrim($aArchivalAgencyCommunicationType['url'], "/"); + } + } + $ArchivalAgencyContactInformations = ContactModel::getById(['select' => ['*'], 'id' => $contactId]); /******** GENERATE MESSAGE EXCHANGE OBJECT *********/ $dataObject = self::generateMessageObject([ 'Comment' => $aComments, 'ArchivalAgency' => [ 'CommunicationType' => $ArchivalAgencyCommunicationType, - 'ContactInformations' => $ArchivalAgencyContactInformations[0] + 'ContactInformations' => $ArchivalAgencyContactInformations ], 'TransferringAgency' => [ 'EntitiesInformations' => $TransferringAgencyInformations @@ -212,12 +228,12 @@ class SendMessageExchangeController 'mainExchangeDocument' => $MainExchangeDoc ]); /******** GENERATION DU BORDEREAU */ - $filePath = SendMessageController::generateMessageFile($dataObject, "ArchiveTransfer", $_SESSION['config']['tmppath']); + $filePath = SendMessageController::generateMessageFile(['messageObject' => $dataObject, 'type' => 'ArchiveTransfer']); /******** SAVE MESSAGE *********/ $messageExchangeReturn = self::saveMessageExchange(['dataObject' => $dataObject, 'res_id_master' => $args['resId'], 'file_path' => $filePath, 'type' => 'ArchiveTransfer']); if (!empty($messageExchangeReturn['error'])) { - return ['errors' => $messageExchangeReturn['error']]; + return $response->withStatus(400)->withJson(['errors' => $messageExchangeReturn['error']]); } else { $messageId = $messageExchangeReturn['messageId']; } @@ -247,13 +263,13 @@ class SendMessageExchangeController if ($res['status'] == 1) { $errors = []; - array_push($errors, _SENDS_FAIL); + array_push($errors, "L'envoi a échoué"); array_push($errors, $res['content']); - return ['errors' => $errors]; + return $response->withStatus(400)->withJson(['errors' => $errors]); } } - return true; + return $response->withStatus(200); } protected static function control($aArgs = []) @@ -311,7 +327,7 @@ class SendMessageExchangeController $additionalUserInfos = ''; if (!empty($value['entity_id'])) { $entityRoot = EntityModel::getEntityRootById(['entityId' => $value['entity_id']]); - $userEntity = Entitymodel::getByEntityId(['entityId' => $value['entity_id']]); + $userEntity = EntityModel::getByEntityId(['entityId' => $value['entity_id']]); $additionalUserInfos = ' ('.$entityRoot['entity_label'].' - '.$userEntity['entity_label'].')'; } $oComment->value = $value['firstname'].' '.$value['lastname'].' - '.$date->format('d-m-Y H:i:s'). $additionalUserInfos . ' : '.$value['note_text']; @@ -442,7 +458,7 @@ class SendMessageExchangeController $contentObject->DocumentType = $aArgs['DocumentType']; $contentObject->Status = StatusModel::getById(['id' => $aArgs['Status']])['label_status']; - $userInfos = UserModel::getByLogin(['login' => $aArgs['Writer']]); + $userInfos = UserModel::getById(['id' => $aArgs['Writer']]); $writer = new \stdClass(); $writer->FirstName = $userInfos['firstname']; $writer->BirthName = $userInfos['lastname']; @@ -554,9 +570,9 @@ class SendMessageExchangeController } MessageExchangeModel::insertUnitIdentifier([ - 'messageId' => $aArgs['messageId'], - 'tableName' => $value['tablenameExchangeMessage'], - 'resId' => $value['res_id'], + 'messageId' => $aArgs['messageId'], + 'tableName' => $value['tablenameExchangeMessage'], + 'resId' => $value['res_id'], 'disposition' => $disposition ]); } @@ -564,9 +580,9 @@ class SendMessageExchangeController if (!empty($aArgs['notes'])) { foreach ($aArgs['notes'] as $value) { MessageExchangeModel::insertUnitIdentifier([ - 'messageId' => $aArgs['messageId'], - 'tableName' => "notes", - 'resId' => $value, + 'messageId' => $aArgs['messageId'], + 'tableName' => "notes", + 'resId' => $value, 'disposition' => "note" ]); } diff --git a/src/app/external/messageExchange/models/MessageExchangeModelAbstract.php b/src/app/external/messageExchange/models/MessageExchangeModelAbstract.php index 19e5e97169c3dfe842de3c15febbe946df408559..e9903b052750488d74f57dcd34bfc0d2af7c6d1d 100755 --- a/src/app/external/messageExchange/models/MessageExchangeModelAbstract.php +++ b/src/app/external/messageExchange/models/MessageExchangeModelAbstract.php @@ -264,7 +264,8 @@ abstract class MessageExchangeModelAbstract public static function insertUnitIdentifier(array $args) { ValidatorModel::notEmpty($args, ['messageId', 'tableName', 'resId', 'disposition']); - ValidatorModel::stringType($args, ['messageId', 'tableName', 'resId', 'disposition']); + ValidatorModel::stringType($args, ['messageId', 'tableName', 'disposition']); + ValidatorModel::intVal($args, ['resId']); $messages = DatabaseModel::insert([ 'table' => 'unit_identifier', diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index eea5a18363e85ab98c7660b0ac25e971c45e4243..294e90fd245216bc9303158256caec6ace7b75c5 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -840,7 +840,7 @@ export const LANG_FR = { "sender" : "Expéditeur", "senderRecipientInformations" : "Informations de destination", "senders" : "Expéditeur(s)", - "sendmail" : "Envoi de courriels et plis numériques", + "sendmail" : "Envoi de courriels", "sendmailShort" : "Envoi de courriels", "sendMode" : "Mode d'envoi", "sendModes" : "Modes d'envoi", diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index fce8549f0781bafdc7da2301b84d048286757445..4626994fd4d8ac4c5489670d85b09af1b6d8aab0 100755 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -279,7 +279,7 @@ class ClassLoader */ public function setApcuPrefix($apcuPrefix) { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; } /** @@ -374,14 +374,10 @@ class ClassLoader $first = $class[0]; if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; - if (isset($this->prefixDirsPsr4[$search])) { - $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); - foreach ($this->prefixDirsPsr4[$search] as $dir) { - if (file_exists($file = $dir . $pathEnd)) { + foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) { + if (0 === strpos($class, $prefix)) { + foreach ($this->prefixDirsPsr4[$prefix] as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { return $file; } } diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE index f27399a042d95c4708af3a8c74d35d338763cf8f..1a28124886db89f1ca3e4fa674cb69a9a17585b3 100755 --- a/vendor/composer/LICENSE +++ b/vendor/composer/LICENSE @@ -1,5 +1,5 @@ -Copyright (c) Nils Adermann, Jordi Boggiano +Copyright (c) 2016 Nils Adermann, Jordi Boggiano Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal