From 0dd886bf39f2c1cbc2cf1ef98f8f76e79d766f4a Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Tue, 17 Dec 2019 14:31:28 +0100 Subject: [PATCH] FEAT #11158 TIME 0:30 Document editors --- .../xml/documentEditorsConfig.xml | 10 +++++ .../xml/onlineEditorsConfig.xml.default | 7 ---- rest/index.php | 1 + .../controllers/DocumentEditorController.php | 38 +++++++++++++++++++ .../controllers/OnlyOfficeController.php | 6 +-- src/app/user/controllers/UserController.php | 4 +- 6 files changed, 54 insertions(+), 12 deletions(-) create mode 100644 apps/maarch_entreprise/xml/documentEditorsConfig.xml delete mode 100644 apps/maarch_entreprise/xml/onlineEditorsConfig.xml.default create mode 100644 src/app/contentManagement/controllers/DocumentEditorController.php diff --git a/apps/maarch_entreprise/xml/documentEditorsConfig.xml b/apps/maarch_entreprise/xml/documentEditorsConfig.xml new file mode 100644 index 00000000000..e9d7d68d0f0 --- /dev/null +++ b/apps/maarch_entreprise/xml/documentEditorsConfig.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<ROOT> + <java> + <enabled>true</enabled> + </java> + <onlyoffice> + <enabled>true</enabled> + <server_uri>10.2.95.76:8765</server_uri> + </onlyoffice> +</ROOT> diff --git a/apps/maarch_entreprise/xml/onlineEditorsConfig.xml.default b/apps/maarch_entreprise/xml/onlineEditorsConfig.xml.default deleted file mode 100644 index 36632361c76..00000000000 --- a/apps/maarch_entreprise/xml/onlineEditorsConfig.xml.default +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<ROOT> - <ONLY_OFFICE> - <ENABLED>true</ENABLED> - <SERVER_URI>127.0.0.1</SERVER_URI> - </ONLY_OFFICE> -</ROOT> diff --git a/rest/index.php b/rest/index.php index 624ddc075d2..f783c454fff 100755 --- a/rest/index.php +++ b/rest/index.php @@ -138,6 +138,7 @@ $app->post('/jnlp', \ContentManagement\controllers\JnlpController::class . ':gen $app->get('/jnlp/{jnlpUniqueId}', \ContentManagement\controllers\JnlpController::class . ':renderJnlp'); $app->post('/jnlp/{jnlpUniqueId}', \ContentManagement\controllers\JnlpController::class . ':processJnlp'); $app->get('/jnlp/lock/{jnlpUniqueId}', \ContentManagement\controllers\JnlpController::class . ':isLockFileExisting'); +$app->get('/documentEditors', \ContentManagement\controllers\DocumentEditorController::class . ':get'); $app->get('/onlyOffice/configuration', \ContentManagement\controllers\OnlyOfficeController::class . ':getConfiguration'); $app->post('/onlyOffice/mergedFile', \ContentManagement\controllers\OnlyOfficeController::class . ':saveMergedFile'); $app->get('/onlyOffice/mergedFile', \ContentManagement\controllers\OnlyOfficeController::class . ':getMergedFile'); diff --git a/src/app/contentManagement/controllers/DocumentEditorController.php b/src/app/contentManagement/controllers/DocumentEditorController.php new file mode 100644 index 00000000000..818e6f9f3aa --- /dev/null +++ b/src/app/contentManagement/controllers/DocumentEditorController.php @@ -0,0 +1,38 @@ +<?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 Online Editor Controller + * + * @author dev@maarch.org + */ + +namespace ContentManagement\controllers; + +use Slim\Http\Request; +use Slim\Http\Response; +use SrcCore\models\CoreConfigModel; + +class DocumentEditorController +{ + const DOCUMENT_EDITION_METHODS = ['java', 'onlyoffice']; + + public static function get(Request $request, Response $response) + { + $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'apps/maarch_entreprise/xml/documentEditorsConfig.xml']); + + $allowedMethods = []; + foreach (self::DOCUMENT_EDITION_METHODS as $method) { + if (!empty($loadedXml->$method->enabled) || $loadedXml->$method->enabled == 'true') { + $allowedMethods[] = $method; + } + } + + return $response->withJson($allowedMethods); + } +} diff --git a/src/app/contentManagement/controllers/OnlyOfficeController.php b/src/app/contentManagement/controllers/OnlyOfficeController.php index 00759d32422..f02bb3a34da 100644 --- a/src/app/contentManagement/controllers/OnlyOfficeController.php +++ b/src/app/contentManagement/controllers/OnlyOfficeController.php @@ -27,15 +27,15 @@ class OnlyOfficeController { public static function getConfiguration(Request $request, Response $response) { - $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'apps/maarch_entreprise/xml/onlineEditorsConfig.xml']); + $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'apps/maarch_entreprise/xml/documentEditorsConfig.xml']); - if (empty($loadedXml) || empty($loadedXml->ONLY_OFFICE->ENABLED) || $loadedXml->ONLY_OFFICE->ENABLED == 'false' || empty($loadedXml->ONLY_OFFICE->SERVER_URI)) { + if (empty($loadedXml) || empty($loadedXml->onlyoffice->enabled) || $loadedXml->onlyoffice->enabled == 'false' || empty($loadedXml->onlyoffice->server_uri)) { return $response->withJson(['enabled' => false]); } $coreUrl = str_replace('rest/', '', UrlController::getCoreUrl()); - return $response->withJson(['enabled' => true, 'serverUri' => (string)$loadedXml->ONLY_OFFICE->SERVER_URI, 'coreUrl' => $coreUrl]); + return $response->withJson(['enabled' => true, 'serverUri' => (string)$loadedXml->onlyoffice->server_uri, 'coreUrl' => $coreUrl]); } public static function saveMergedFile(Request $request, Response $response) diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php index c5d5ad01d5f..975d13d9ef8 100755 --- a/src/app/user/controllers/UserController.php +++ b/src/app/user/controllers/UserController.php @@ -17,6 +17,7 @@ namespace User\controllers; use Basket\models\BasketModel; use Basket\models\GroupBasketModel; use Basket\models\RedirectBasketModel; +use ContentManagement\controllers\DocumentEditorController; use Docserver\controllers\DocserverController; use Docserver\models\DocserverModel; use Email\controllers\EmailController; @@ -53,7 +54,6 @@ use User\models\UserSignatureModel; class UserController { const ALTERNATIVES_CONNECTIONS_METHODS = ['sso', 'cas', 'ldap', 'ozwillo', 'shibboleth']; - const DOCUMENT_EDITION_METHODS = ['java', 'onlyOffice']; public function get(Request $request, Response $response) { @@ -537,7 +537,7 @@ class UserController } elseif (!Validator::arrayType()->notEmpty()->validate($body['preferences'])) { return $response->withStatus(400)->withJson(['errors' => 'Body preferences is empty or not an array']); } - if (!in_array($body['preferences']['documentEdition'], UserController::DOCUMENT_EDITION_METHODS)) { + if (!in_array($body['preferences']['documentEdition'], DocumentEditorController::DOCUMENT_EDITION_METHODS)) { return $response->withStatus(400)->withJson(['errors' => 'Body preferences[documentEdition] is not allowed']); } -- GitLab