From c48a1c5fa37fad523874c9b79210f80ae173cc8c Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Thu, 9 Aug 2018 12:26:47 +0200
Subject: [PATCH] [REFACTORING] Merge request

---
 apps/maarch_entreprise/actions/index_mlb.php  |  4 +++-
 apps/maarch_entreprise/smartphone/details.php |  2 +-
 apps/maarch_entreprise/xml/config.xml.default |  1 +
 composer.json                                 |  2 +-
 core/class/class_functions.php                | 24 -------------------
 core/class/web_service/class_web_service.php  |  1 -
 rest/index.php                                |  2 +-
 sql/develop.sql                               |  3 ++-
 .../ConvertThumbnailController.php            | 11 +++++----
 .../{resource => convert}/models/AdrModel.php |  2 +-
 .../resource/controllers/ResController.php    |  3 ++-
 .../resource/controllers/StoreController.php  |  1 +
 src/core/models/CoreConfigModel.php           | 20 ++++++++++++++++
 vendor/composer/autoload_psr4.php             |  2 +-
 vendor/composer/autoload_static.php           |  2 +-
 15 files changed, 42 insertions(+), 38 deletions(-)
 rename src/app/{resource => convert}/controllers/ConvertThumbnailController.php (92%)
 rename src/app/{resource => convert}/models/AdrModel.php (99%)

diff --git a/apps/maarch_entreprise/actions/index_mlb.php b/apps/maarch_entreprise/actions/index_mlb.php
index 488ad5f7512..2e5ec8a100c 100755
--- a/apps/maarch_entreprise/actions/index_mlb.php
+++ b/apps/maarch_entreprise/actions/index_mlb.php
@@ -1807,7 +1807,9 @@ function manage_form($arrId, $history, $actionId, $label_action, $status, $collI
     ]);
 
     $resId = \Resource\models\ResModel::create($data);
-    \Resource\controllers\ConvertThumbnailController::convert(['collId' => 'letterbox_coll', 'resId' => $resId]);
+    if ($catId != 'outgoing') {
+        \Convert\controllers\ConvertThumbnailController::convert(['collId' => 'letterbox_coll', 'resId' => $resId]);
+    }
 
     \History\controllers\HistoryController::add([
         'tableName' => 'res_letterbox',
diff --git a/apps/maarch_entreprise/smartphone/details.php b/apps/maarch_entreprise/smartphone/details.php
index 1204347afed..97009af5a37 100755
--- a/apps/maarch_entreprise/smartphone/details.php
+++ b/apps/maarch_entreprise/smartphone/details.php
@@ -149,7 +149,7 @@ foreach (array_keys($data) as $key) {
 $getAttach = '';
 
 $db = new Database();
-$tnlAdr = \Resource\models\AdrModel::getTypedDocumentAdrByResId([
+$tnlAdr = \Convert\models\AdrModel::getTypedDocumentAdrByResId([
     'select'    => [1],
     'resId'     => $s_id,
     'type'      => 'TNL'
diff --git a/apps/maarch_entreprise/xml/config.xml.default b/apps/maarch_entreprise/xml/config.xml.default
index 821a48a829c..3e356587eb7 100755
--- a/apps/maarch_entreprise/xml/config.xml.default
+++ b/apps/maarch_entreprise/xml/config.xml.default
@@ -18,6 +18,7 @@
         <defaultPage>welcome</defaultPage>
         <exportdirectory/>
         <CookieTime>20</CookieTime> <!-- minutes -->
+        <timezone>Europe/Paris</timezone>
         <userdefaultpassword>maarch</userdefaultpassword> <!-- default user's password -->
         <usePHPIDS>true</usePHPIDS>
     </CONFIG>
diff --git a/composer.json b/composer.json
index d480f1ffa7f..0f7702a4144 100755
--- a/composer.json
+++ b/composer.json
@@ -7,6 +7,7 @@
             "Basket\\"            : "src/app/basket/",
             "Contact\\"           : "src/app/contact/",
             "ContentManagement\\" : "src/app/contentManagement/",
+            "Convert\\"           : "src/app/convert/",
             "Docserver\\"         : "src/app/docserver/",
             "Doctype\\"           : "src/app/doctype/",
             "Entity\\"            : "src/app/entity/",
@@ -27,7 +28,6 @@
             "User\\"              : "src/app/user/",
             "VersionUpdate\\"     : "src/app/versionUpdate/",
 
-            "Convert\\"           : "modules/convert/",
             "Sendmail\\"          : "modules/sendmail/"
     	}
     },
diff --git a/core/class/class_functions.php b/core/class/class_functions.php
index a383aa9f5f6..5b878da5007 100755
--- a/core/class/class_functions.php
+++ b/core/class/class_functions.php
@@ -1162,30 +1162,6 @@ class functions
         return base64_decode(strtr($base64, '-_,', '+/'));
     }
 
-    /**
-    * Method to generates private and public keys
-    */
-    public function generatePrivatePublicKey() {
-        $privateKeyPath = $this->getPrivateKeyPath();
-        $publicKeyPath = $this->getPublicKeyPath();
-        if(!file_exists($privateKeyPath)) {
-            $inF = fopen($privateKeyPath,"w");
-            fclose($inF);
-        }
-        if(!file_exists($publicKeyPath)) {
-            $inF = fopen($publicKeyPath,"w");
-            fclose($inF);
-        }
-        $privateKey = openssl_pkey_new(array(
-            'private_key_bits' => 1024,
-            'private_key_type' => OPENSSL_KEYTYPE_RSA,
-        ));
-        $passphrase = "";
-        openssl_pkey_export_to_file($privateKey, $privateKeyPath, $passphrase);
-        $keyDetails = openssl_pkey_get_details($privateKey);
-        file_put_contents($publicKeyPath, $keyDetails['key']);
-    }
-
     /**
     * Encrypt a text
     * @param $text string to encrypt
diff --git a/core/class/web_service/class_web_service.php b/core/class/web_service/class_web_service.php
index 6507563aea7..2f628897a91 100755
--- a/core/class/web_service/class_web_service.php
+++ b/core/class/web_service/class_web_service.php
@@ -161,7 +161,6 @@ class webService {
             require_once('core' . DIRECTORY_SEPARATOR . 'class'
                 . DIRECTORY_SEPARATOR . 'class_security.php');
             $func = new functions();
-            $connexion = new Database();
             if ($func->isEncrypted() == "true") {
                 $_SESSION['user']['UserId'] = $func->decrypt($_SERVER["PHP_AUTH_USER"]);
                 $password = $func->decrypt($_SERVER["PHP_AUTH_PW"]);
diff --git a/rest/index.php b/rest/index.php
index 542ce1b31fa..19118a4baf4 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -16,7 +16,7 @@ require '../vendor/autoload.php';
 
 //Root application position
 chdir('..');
-
+date_default_timezone_set(\SrcCore\models\CoreConfigModel::getTimezone());
 
 $customId = \SrcCore\models\CoreConfigModel::getCustomId();
 $language = \SrcCore\models\CoreConfigModel::getLanguage();
diff --git a/sql/develop.sql b/sql/develop.sql
index 65896d62b99..87f85cbbab3 100644
--- a/sql/develop.sql
+++ b/sql/develop.sql
@@ -155,11 +155,12 @@ CREATE TABLE adr_letterbox
 WITH (OIDS=FALSE);
 DO $$ BEGIN
   IF (SELECT count(attname) FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'res_letterbox') AND attname = 'tnl_path') = 1 THEN
-    INSERT INTO adr_letterbox (res_id, type, docserver_id, path, filename) SELECT res_id, 'TNL', 'TNL_MLB', tnl_path, tnl_filename FROM res_letterbox WHERE tnl_path IS NOT NULL AND tnl_path != 'ERR'
+    INSERT INTO adr_letterbox (res_id, type, docserver_id, path, filename) SELECT res_id, 'TNL', 'TNL_MLB', tnl_path, tnl_filename FROM res_letterbox WHERE tnl_path IS NOT NULL AND tnl_path != 'ERR';
     ALTER TABLE res_letterbox DROP COLUMN IF EXISTS tnl_path;
     ALTER TABLE res_letterbox DROP COLUMN IF EXISTS tnl_filename;
   END IF;
 END$$;
+DELETE FROM parameters WHERE id = 'thumbnailsSize';
 INSERT INTO parameters (id, description, param_value_string) VALUES ('thumbnailsSize', 'Taille des imagettes', '750x900');
 
 /* Refactoring */
diff --git a/src/app/resource/controllers/ConvertThumbnailController.php b/src/app/convert/controllers/ConvertThumbnailController.php
similarity index 92%
rename from src/app/resource/controllers/ConvertThumbnailController.php
rename to src/app/convert/controllers/ConvertThumbnailController.php
index b4b167bd5e1..c07dcafab95 100644
--- a/src/app/resource/controllers/ConvertThumbnailController.php
+++ b/src/app/convert/controllers/ConvertThumbnailController.php
@@ -10,17 +10,16 @@
 /**
  * @brief Convert Thumbnail Controller
  * @author dev@maarch.org
- * @ingroup core
  */
 
-namespace Resource\controllers;
+namespace Convert\controllers;
 
 
 use Attachment\models\AttachmentModel;
+use Convert\models\AdrModel;
 use Docserver\controllers\DocserverController;
 use Docserver\models\DocserverModel;
 use Parameter\models\ParameterModel;
-use Resource\models\AdrModel;
 use Resource\models\ResModel;
 use SrcCore\models\CoreConfigModel;
 use SrcCore\models\ValidatorModel;
@@ -53,6 +52,10 @@ class ConvertThumbnailController
         }
 
         $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $resource['path']) . $resource['filename'];
+        if (!file_exists($pathToDocument)) {
+            return ['errors' => '[ConvertThumbnail] Document does not exist on docserver'];
+        }
+
         $ext = pathinfo($pathToDocument, PATHINFO_EXTENSION);
         $tmpPath = CoreConfigModel::getTmpPath();
         $fileNameOnTmp = rand() . basename($pathToDocument);
@@ -67,7 +70,7 @@ class ConvertThumbnailController
         } else {
             $size = '750x900';
             $parameter = ParameterModel::getById(['id' => 'thumbnailsSize', 'select' => ['param_value_string']]);
-            if (!empty($parameter) && preg_match('/[0-9]{3,4}[x][0-9]{3,4}/', $parameter['param_value_string'])) {
+            if (!empty($parameter) && preg_match('/^[0-9]{3,4}[x][0-9]{3,4}$/', $parameter['param_value_string'])) {
                 $size = $parameter['param_value_string'];
             }
             $command = "convert -thumbnail {$size} -background white -alpha remove "
diff --git a/src/app/resource/models/AdrModel.php b/src/app/convert/models/AdrModel.php
similarity index 99%
rename from src/app/resource/models/AdrModel.php
rename to src/app/convert/models/AdrModel.php
index 0be5649631f..c3247e492e2 100644
--- a/src/app/resource/models/AdrModel.php
+++ b/src/app/convert/models/AdrModel.php
@@ -12,7 +12,7 @@
  * @author dev@maarch.org
  */
 
-namespace Resource\models;
+namespace Convert\models;
 
 use SrcCore\models\DatabaseModel;
 use SrcCore\models\ValidatorModel;
diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php
index 10725b9c115..62111ae8b1a 100755
--- a/src/app/resource/controllers/ResController.php
+++ b/src/app/resource/controllers/ResController.php
@@ -16,11 +16,12 @@ namespace Resource\controllers;
 
 use Attachment\models\AttachmentModel;
 use Basket\models\BasketModel;
+use Convert\controllers\ConvertThumbnailController;
+use Convert\models\AdrModel;
 use Docserver\models\DocserverModel;
 use Group\controllers\GroupController;
 use Note\models\NoteModel;
 use Group\models\ServiceModel;
-use Resource\models\AdrModel;
 use setasign\Fpdi\TcpdfFpdi;
 use SrcCore\models\CoreConfigModel;
 use Status\models\StatusModel;
diff --git a/src/app/resource/controllers/StoreController.php b/src/app/resource/controllers/StoreController.php
index d3f86b38d72..b4966dd1363 100644
--- a/src/app/resource/controllers/StoreController.php
+++ b/src/app/resource/controllers/StoreController.php
@@ -17,6 +17,7 @@ namespace Resource\controllers;
 
 use Attachment\models\AttachmentModel;
 use Contact\models\ContactModel;
+use Convert\controllers\ConvertThumbnailController;
 use Docserver\controllers\DocserverController;
 use Resource\models\ChronoModel;
 use SrcCore\models\ValidatorModel;
diff --git a/src/core/models/CoreConfigModel.php b/src/core/models/CoreConfigModel.php
index b332e4ef05f..4c501b43a04 100644
--- a/src/core/models/CoreConfigModel.php
+++ b/src/core/models/CoreConfigModel.php
@@ -91,6 +91,26 @@ class CoreConfigModel
         return 'en';
     }
 
+    /**
+     * Get the timezone
+     *
+     * @return string
+     */
+    public static function getTimezone()
+    {
+        $timezone = 'Europe/Paris';
+
+        $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'apps/maarch_entreprise/xml/config.xml']);
+
+        if ($loadedXml) {
+            if (!empty((string)$loadedXml->CONFIG->timezone)) {
+                $timezone = (string)$loadedXml->CONFIG->timezone;
+            }
+        }
+
+        return $timezone;
+    }
+
     /**
      * Get the tmp dir
      *
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
index 9ac8e1c45ca..18a36b376d9 100644
--- a/vendor/composer/autoload_psr4.php
+++ b/vendor/composer/autoload_psr4.php
@@ -49,7 +49,7 @@ return array(
     'Entity\\' => array($baseDir . '/src/app/entity'),
     'Doctype\\' => array($baseDir . '/src/app/doctype'),
     'Docserver\\' => array($baseDir . '/src/app/docserver'),
-    'Convert\\' => array($baseDir . '/modules/convert'),
+    'Convert\\' => array($baseDir . '/src/app/convert'),
     'ContentManagement\\' => array($baseDir . '/src/app/contentManagement'),
     'Contact\\' => array($baseDir . '/src/app/contact'),
     'Clue\\StreamFilter\\' => array($vendorDir . '/clue/stream-filter/src'),
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index c3c880fcee5..a938c17b69c 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -302,7 +302,7 @@ class ComposerStaticInitf21aebccfa6df888200dcb099aa69fbd
         ),
         'Convert\\' => 
         array (
-            0 => __DIR__ . '/../..' . '/modules/convert',
+            0 => __DIR__ . '/../..' . '/src/app/convert',
         ),
         'ContentManagement\\' => 
         array (
-- 
GitLab