From dcb6cbb4af2454e4256395826c4738e92bf21f8e Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Thu, 17 May 2018 10:57:07 +0200 Subject: [PATCH] FEAT #7730 Update version back --- composer.json | 1 + package-lock.json | 10 ++- rest/index.php | 19 +++-- .../controllers/VersionUpdateController.php | 75 +++++++++++++++++++ vendor/composer/autoload_psr4.php | 1 + vendor/composer/autoload_static.php | 8 ++ 6 files changed, 103 insertions(+), 11 deletions(-) create mode 100644 src/app/versionUpdate/controllers/VersionUpdateController.php diff --git a/composer.json b/composer.json index 744ae5f846e..2f73819e5e4 100755 --- a/composer.json +++ b/composer.json @@ -23,6 +23,7 @@ "Status\\" : "src/app/status/", "Template\\" : "src/app/template/", "User\\" : "src/app/user/", + "VersionUpdate\\" : "src/app/versionUpdate/", "Core\\" : "core/", "Convert\\" : "modules/convert/", diff --git a/package-lock.json b/package-lock.json index 414318bc79b..9c96ff244e3 100755 --- a/package-lock.json +++ b/package-lock.json @@ -2035,7 +2035,8 @@ "deep-extend": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "dev": true }, "deep-is": { "version": "0.1.3", @@ -4616,7 +4617,8 @@ "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true }, "internal-ip": { "version": "1.2.0", @@ -7388,6 +7390,7 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "dev": true, "requires": { "deep-extend": "^0.5.1", "ini": "~1.3.0", @@ -8536,7 +8539,8 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "style-loader": { "version": "0.21.0", diff --git a/rest/index.php b/rest/index.php index 3fd3a24edd6..383fb93163a 100755 --- a/rest/index.php +++ b/rest/index.php @@ -201,6 +201,15 @@ $app->get('/res/{resId}/lock', \Resource\controllers\ResController::class . ':is $app->get('/res/{resId}/notes/count', \Resource\controllers\ResController::class . ':getNotesCountForCurrentUserById'); $app->put('/res/externalInfos', \Resource\controllers\ResController::class . ':updateExternalInfos'); +//SignatureBook +$app->get('/{basketId}/signatureBook/resList', \SignatureBook\controllers\SignatureBookController::class . ':getResList'); +$app->get('/{basketId}/signatureBook/resList/details', \SignatureBook\controllers\SignatureBookController::class . ':getDetailledResList'); +$app->get('/groups/{groupId}/baskets/{basketId}/signatureBook/{resId}', \SignatureBook\controllers\SignatureBookController::class . ':getSignatureBook'); +$app->get('/signatureBook/{resId}/attachments', \SignatureBook\controllers\SignatureBookController::class . ':getAttachmentsById'); +$app->get('/signatureBook/{resId}/incomingMailAttachments', \SignatureBook\controllers\SignatureBookController::class . ':getIncomingMailAndAttachmentsById'); +$app->put('/signatureBook/{resId}/unsign', \SignatureBook\controllers\SignatureBookController::class . ':unsignFile'); +$app->put('/attachments/{id}/inSignatureBook', \SignatureBook\controllers\SignatureBookController::class . ':setInSignatureBook'); + //statuses $app->get('/statuses', \Status\controllers\StatusController::class . ':get'); $app->post('/statuses', \Status\controllers\StatusController::class . ':create'); @@ -238,14 +247,8 @@ $app->post('/users/{id}/redirectedBaskets', \User\controllers\UserController::cl $app->delete('/users/{id}/redirectedBaskets/{basketId}', \User\controllers\UserController::class . ':deleteRedirectedBaskets'); $app->put('/users/{id}/baskets', \User\controllers\UserController::class . ':updateBasketsDisplay'); -//Visa -$app->get('/{basketId}/signatureBook/resList', \SignatureBook\controllers\SignatureBookController::class . ':getResList'); -$app->get('/{basketId}/signatureBook/resList/details', \SignatureBook\controllers\SignatureBookController::class . ':getDetailledResList'); -$app->get('/groups/{groupId}/baskets/{basketId}/signatureBook/{resId}', \SignatureBook\controllers\SignatureBookController::class . ':getSignatureBook'); -$app->get('/signatureBook/{resId}/attachments', \SignatureBook\controllers\SignatureBookController::class . ':getAttachmentsById'); -$app->get('/signatureBook/{resId}/incomingMailAttachments', \SignatureBook\controllers\SignatureBookController::class . ':getIncomingMailAndAttachmentsById'); -$app->put('/signatureBook/{resId}/unsign', \SignatureBook\controllers\SignatureBookController::class . ':unsignFile'); -$app->put('/attachments/{id}/inSignatureBook', \SignatureBook\controllers\SignatureBookController::class . ':setInSignatureBook'); +//VersionsUpdate +$app->get('/versionsUpdate', \VersionUpdate\controllers\VersionUpdateController::class . ':get'); //CurrentUser $app->get('/currentUser/profile', \User\controllers\UserController::class . ':getProfile'); diff --git a/src/app/versionUpdate/controllers/VersionUpdateController.php b/src/app/versionUpdate/controllers/VersionUpdateController.php new file mode 100644 index 00000000000..aabe892c5bd --- /dev/null +++ b/src/app/versionUpdate/controllers/VersionUpdateController.php @@ -0,0 +1,75 @@ +<?php + +/** + * Copyright Maarch since 2008 under licence GPLv3. + * See LICENCE.txt file at the root folder for more details. + * This file is part of Maarch software. + * + */ + +/** + * @brief Version Update Controller + * @author dev@maarch.org + */ + +namespace VersionUpdate\controllers; + +use Gitlab\Client; +use Group\models\ServiceModel; +use Parameter\models\ParameterModel; +use Slim\Http\Request; +use Slim\Http\Response; + +class VersionUpdateController +{ + public function get(Request $request, Response $response) + { + if (!ServiceModel::hasService(['id' => 'admin_update_control', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { + return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); + } + + $client = new Client('https://labs.maarch.org/api/v4/'); + $tags = $client->api('tags')->all('12'); + + $parameter = ParameterModel::getById(['select' => ['param_value_string'], 'id' => 'database_version']); + + $currentVersionBranch = substr($parameter['param_value_string'], 0, 5); + $currentVersionBranchYear = substr($parameter['param_value_string'], 0, 2); + $currentVersionBranchMonth = substr($parameter['param_value_string'], 3, 2); + $currentVersionTag = substr($parameter['param_value_string'], 6); + + $currentMinorVersions = []; + $availableMajorVersions = []; + $cptCurrentTags = 0; + + foreach ($tags as $value) { + if (!preg_match("/^\d{2}\.\d{2}\.\d+$/", $value['name'])) { + continue; + } + $tag = substr($value['name'], 6); + $pos = strpos($value['name'], $currentVersionBranch); + if ($pos === false) { + $year = substr($value['name'], 0, 2); + $month = substr($value['name'], 3, 2); + if (($year == $currentVersionBranchYear && $month > $currentVersionBranchMonth) || $year > $currentVersionBranchYear) { + $availableMajorVersions[] = $value['name']; + } + } else { + $currentMinorVersions[$cptCurrentTags] = []; + $currentMinorVersions[$cptCurrentTags]['name'] = $value['name']; + if ($tag > $currentVersionTag) { + $currentMinorVersions[$cptCurrentTags]['enabled'] = true; + } else { + $currentMinorVersions[$cptCurrentTags]['enabled'] = false; + } + ++$cptCurrentTags; + } + } + + return $response->withJson([ + 'currentMinorVersions' => $currentMinorVersions, + 'availableMajorVersions' => $availableMajorVersions, + 'currentVersion' => $parameter['param_value_string'] + ]); + } +} diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index bcbaba490ba..5f2da2cc16a 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -7,6 +7,7 @@ $baseDir = dirname($vendorDir); return array( 'phpseclib\\' => array($vendorDir . '/phpseclib/phpseclib/phpseclib'), + 'VersionUpdate\\' => array($baseDir . '/src/app/versionUpdate'), 'User\\' => array($baseDir . '/src/app/user'), 'Template\\' => array($baseDir . '/src/app/template'), 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 6da988e67cf..3d842a236d7 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -19,6 +19,10 @@ class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47 array ( 'phpseclib\\' => 10, ), + 'V' => + array ( + 'VersionUpdate\\' => 14, + ), 'U' => array ( 'User\\' => 5, @@ -114,6 +118,10 @@ class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47 array ( 0 => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib', ), + 'VersionUpdate\\' => + array ( + 0 => __DIR__ . '/../..' . '/src/app/versionUpdate', + ), 'User\\' => array ( 0 => __DIR__ . '/../..' . '/src/app/user', -- GitLab