diff --git a/apps/maarch_entreprise/logout.php b/apps/maarch_entreprise/logout.php index 45e5e795b693d6cfa699ca89b3addab542c18098..7c026762609adae1bbec92117f66f80daf1023aa 100755 --- a/apps/maarch_entreprise/logout.php +++ b/apps/maarch_entreprise/logout.php @@ -92,7 +92,7 @@ if (isset($webSSOurl) && $webSSOurl <> '') { header("location: " . $webSSOurl); exit(); } elseif (!empty($accessToken)) { - $ozwilloConfig = \Core\Models\CoreConfigModel::getOzwilloConfiguration(); + $ozwilloConfig = \SrcCore\models\CoreConfigModel::getOzwilloConfiguration(); $oidc = new OpenIDConnectClient($ozwilloConfig['uri'], $ozwilloConfig['clientId'], $ozwilloConfig['clientSecret']); $oidc->signOut($accessToken, null); } else { diff --git a/apps/maarch_entreprise/ozwilloConnect.php b/apps/maarch_entreprise/ozwilloConnect.php index e0ed4d47b6992aa9873e7d9d9b3e9f25b4e66910..c7551a07e350ef5c95cf95a821930dd80ea794d3 100644 --- a/apps/maarch_entreprise/ozwilloConnect.php +++ b/apps/maarch_entreprise/ozwilloConnect.php @@ -2,7 +2,7 @@ require 'vendor/autoload.php'; -$ozwilloConfig = \Core\Models\CoreConfigModel::getOzwilloConfiguration(); +$ozwilloConfig = \SrcCore\models\CoreConfigModel::getOzwilloConfiguration(); if (!empty($_SESSION['ozwillo']['code']) && !empty($_SESSION['ozwillo']['state'])) { $_REQUEST['code'] = $_SESSION['ozwillo']['code']; diff --git a/core/Controllers/CoreController.php b/core/Controllers/CoreController.php index d49b44d7235b730e016aee2d4c717c31be5e5319..ab73b6a2b6a9b6c543e5b7db91712c9b1ef0fef3 100755 --- a/core/Controllers/CoreController.php +++ b/core/Controllers/CoreController.php @@ -15,10 +15,10 @@ namespace Core\Controllers; -use Core\Models\CoreConfigModel; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; use Core\Models\ServiceModel; +use SrcCore\models\CoreConfigModel; class CoreController { diff --git a/core/Controllers/StoreController.php b/core/Controllers/StoreController.php index b3102b093f20f9a5285b7cf605f0b0cd597dedba..ae081886ba85948d934266084236969e4bf747e6 100644 --- a/core/Controllers/StoreController.php +++ b/core/Controllers/StoreController.php @@ -18,7 +18,6 @@ namespace Core\Controllers; use Attachments\Models\AttachmentsModel; use Core\Models\ChronoModel; use Core\Models\ContactModel; -use Core\Models\CoreConfigModel; use Core\Models\DocserverModel; use Core\Models\DocserverTypeModel; use Core\Models\ResExtModel; @@ -26,6 +25,7 @@ use Core\Models\UserModel; use Core\Models\ValidatorModel; use Entities\Models\EntityModel; use Resource\models\ResModel; +use SrcCore\models\CoreConfigModel; class StoreController { diff --git a/core/Controllers/UserController.php b/core/Controllers/UserController.php index e8d1db61f9e03126ec41dc011e0b0c7750f17057..f1a524746ce73e6fa79ef8bf4bcce46eef3a93d1 100755 --- a/core/Controllers/UserController.php +++ b/core/Controllers/UserController.php @@ -16,7 +16,6 @@ namespace Core\Controllers; use Basket\models\BasketModel; -use Core\Models\CoreConfigModel; use Core\Models\GroupModel; use Core\Models\SecurityModel; use Core\Models\ServiceModel; @@ -30,6 +29,7 @@ use Psr\Http\Message\ResponseInterface; use Respect\Validation\Validator; use Slim\Http\Request; use Slim\Http\Response; +use SrcCore\models\CoreConfigModel; class UserController diff --git a/core/Models/ChronoModel.php b/core/Models/ChronoModel.php index 6889e8996dedfe0f713a5eddf17d81ce5e74d6be..7ccd96127346b48de17ec44682c3b7eb4034cc8c 100644 --- a/core/Models/ChronoModel.php +++ b/core/Models/ChronoModel.php @@ -15,6 +15,9 @@ namespace Core\Models; +use Parameter\models\ParameterModel; +use SrcCore\models\CoreConfigModel; + class ChronoModel { public static function getChrono(array $aArgs) diff --git a/core/Models/CurlModel.php b/core/Models/CurlModel.php index b5d602dc497f8fc0aa0ed81bda5fcfd242fecfde..fbf3ff68f338d74f3d59cb165cb80db087062089 100644 --- a/core/Models/CurlModel.php +++ b/core/Models/CurlModel.php @@ -15,6 +15,8 @@ namespace Core\Models; +use SrcCore\models\CoreConfigModel; + class CurlModel { public static function exec(array $aArgs) diff --git a/core/Models/DatabasePDO.php b/core/Models/DatabasePDO.php index 9422820642cb1a4cb4e103d28919da0baabcc2d5..225e57fe1058815304093705781ef0ace1766589 100755 --- a/core/Models/DatabasePDO.php +++ b/core/Models/DatabasePDO.php @@ -15,6 +15,8 @@ namespace Core\Models; +use SrcCore\models\CoreConfigModel; + class DatabasePDO { private static $pdo = null; diff --git a/core/Models/SecurityModelAbstract.php b/core/Models/SecurityModelAbstract.php index e9dfc843c6062b5b552e7d49bfed5329bd01fa53..700aed7d4208f9e10f28a788abe6c806bee50239 100755 --- a/core/Models/SecurityModelAbstract.php +++ b/core/Models/SecurityModelAbstract.php @@ -15,6 +15,8 @@ namespace Core\Models; +use SrcCore\models\CoreConfigModel; + class SecurityModelAbstract { diff --git a/core/Models/ServiceModelAbstract.php b/core/Models/ServiceModelAbstract.php index 9a73c84bac35fe05b8af6856a0e8c5e3eae1b5b5..1282a182b209f50fc967f3a1265e71c335ba1b25 100755 --- a/core/Models/ServiceModelAbstract.php +++ b/core/Models/ServiceModelAbstract.php @@ -15,6 +15,8 @@ namespace Core\Models; +use SrcCore\models\CoreConfigModel; + class ServiceModelAbstract { public static function getServicesByXML() @@ -315,8 +317,6 @@ class ServiceModelAbstract if ($path) { $xmlfile = simplexml_load_file($path); foreach ($xmlfile->MENU as $value) { - $id = (string) $value->id; - if (in_array((string) $value->id, $aArgs['userServices'])) { $label = defined((string)$value->libconst) ? constant((string)$value->libconst) : (string)$value->libconst; diff --git a/core/Models/UserModelAbstract.php b/core/Models/UserModelAbstract.php index 164ee79e272f1984fc0c9908083d3a7b3ca4e175..da53605d2af1aeb0c8cba9e2ba8218878e832cee 100755 --- a/core/Models/UserModelAbstract.php +++ b/core/Models/UserModelAbstract.php @@ -17,6 +17,7 @@ namespace Core\Models; use Entities\Models\EntityModel; use History\controllers\HistoryController; +use SrcCore\models\CoreConfigModel; class UserModelAbstract { diff --git a/core/Test/ReportControllerTest.php b/core/Test/ReportControllerTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fda6d573c5e7711c5c9930982b70f801821d13e9 --- /dev/null +++ b/core/Test/ReportControllerTest.php @@ -0,0 +1,100 @@ +<?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. +* +*/ + +use PHPUnit\Framework\TestCase; + +class ReportControllerTest extends TestCase +{ + private static $id = null; + + public function testGetGroups() + { + $reportController = new \Report\controllers\ReportController(); + + // GET + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $reportController->getGroups($request, new \Slim\Http\Response()); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->groups); + + self::$id = $responseBody->groups[0]->group_id; + } + + public function testUpdateForGroupId() + { + $reportController = new \Report\controllers\ReportController(); + + // GET + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $reportController->getByGroupId($request, new \Slim\Http\Response(), ['groupId' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->reports); + + foreach ($responseBody->reports as $key => $report) { + $responseBody->reports[$key]->checked = true; + } + + // PUT + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + + $fullRequest = \httpRequestCustom::addContentInBody($responseBody->reports, $request); + + $response = $reportController->updateForGroupId($fullRequest, new \Slim\Http\Response(), ['groupId' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame('success', $responseBody->success); + + // READ + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $reportController->getByGroupId($request, new \Slim\Http\Response(), ['groupId' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->reports); + + foreach ($responseBody->reports as $key => $report) { + $this->assertSame(true, $report->checked); + if ($key % 2) { + $responseBody->reports[$key]->checked = false; + } + } + + // PUT + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + + $fullRequest = \httpRequestCustom::addContentInBody($responseBody->reports, $request); + + $response = $reportController->updateForGroupId($fullRequest, new \Slim\Http\Response(), ['groupId' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame('success', $responseBody->success); + + // READ + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $reportController->getByGroupId($request, new \Slim\Http\Response(), ['groupId' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->reports); + + foreach ($responseBody->reports as $key => $report) { + if ($key % 2) { + $this->assertSame(false, $report->checked); + } else { + $this->assertSame(true, $report->checked); + } + } + } +} diff --git a/modules/attachments/Models/AttachmentsModelAbstract.php b/modules/attachments/Models/AttachmentsModelAbstract.php index 19b2681a2eae6a8edab49d62b8c439525d47be86..27b5bbf3b92698c1df94472b1e1410016f7c94f4 100755 --- a/modules/attachments/Models/AttachmentsModelAbstract.php +++ b/modules/attachments/Models/AttachmentsModelAbstract.php @@ -9,9 +9,9 @@ namespace Attachments\Models; -use Core\Models\CoreConfigModel; use Core\Models\DatabaseModel; use Core\Models\ValidatorModel; +use SrcCore\models\CoreConfigModel; class AttachmentsModelAbstract { diff --git a/phpunit.xml b/phpunit.xml index da77dcd82fb708d22c2ed81a5a73cdd8c57c5273..0864bb1b9c673c66647e3c458777033e50c55fdd 100755 --- a/phpunit.xml +++ b/phpunit.xml @@ -5,10 +5,11 @@ <!--directory>core/Test</directory--> <!--file>core/Test/ActionControllerTest.php</file--> <file>core/Test/ResControllerTest.php</file> - <file>core/Test/PriorityControllerTest.php</file> - <file>core/Test/StatusControllerTest.php</file> <file>core/Test/UserControllerTest.php</file> <file>core/Test/BasketControllerTest.php</file> + <file>core/Test/PriorityControllerTest.php</file> + <file>core/Test/StatusControllerTest.php</file> + <file>core/Test/ReportControllerTest.php</file> <file>modules/convert/Test/ProcessConvertTest.php</file> <file>modules/convert/Test/ProcessFulltextTest.php</file> <file>modules/convert/Test/ProcessThumbnailsTest.php</file> diff --git a/src/app/action/controllers/ActionController.php b/src/app/action/controllers/ActionController.php index d626ddcef150eda3346c3c30541bd474fe3d2367..77b0202bc976c49449a507305e2dc3802a2f83fb 100644 --- a/src/app/action/controllers/ActionController.php +++ b/src/app/action/controllers/ActionController.php @@ -14,9 +14,9 @@ namespace Action\controllers; use History\controllers\HistoryController; use Respect\Validation\Validator; use Action\models\ActionModel; +use SrcCore\models\CoreConfigModel; use Status\models\StatusModel; use Core\Models\ServiceModel; -use Core\Models\CoreConfigModel; use Slim\Http\Request; use Slim\Http\Response; @@ -28,21 +28,12 @@ class ActionController return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } - $obj ['actions']= ActionModel::get(); - - return $response->withJson($obj); + return $response->withJson(['actions' => ActionModel::get()]); } public function getById(Request $request, Response $response, $aArgs) { - if (isset($aArgs['id'])) { - $id = $aArgs['id']; - $obj['action'] = ActionModel::getById(['id' => $id]); - } else { - return $response - ->withStatus(500) - ->withJson(['errors' => 'id is empty']); - } + $obj['action'] = ActionModel::getById(['id' => $aArgs['id']]); if(!empty($obj['action'])){ if ($obj['action']['is_folder_action'] == 'Y') { @@ -75,7 +66,7 @@ class ActionController } $obj['action']['actionCategories'] = $arrActionCategories; - $obj['categoriesList'] = CoreConfigModel:: getLettersBoxCategories(); + $obj['categoriesList'] = CoreConfigModel::getLettersBoxCategories(); //array of id categoriesList foreach ($obj['categoriesList'] as $key => $category) { @@ -103,27 +94,17 @@ class ActionController return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } - $errors = []; - $aArgs = $request->getParams(); - $aArgs = $this->manageValue($aArgs); + $data = $request->getParams(); + $data = $this->manageValue($data); - $errors = $this->control($aArgs, 'create'); - + $errors = $this->control($data, 'create'); if (!empty($errors)) { - return $response - ->withStatus(500) - ->withJson(['errors' => $errors]); + return $response->withStatus(500)->withJson(['errors' => $errors]); } - $return = ActionModel::create($aArgs); + ActionModel::create($data); - if ($return) { - $obj = max(ActionModel::get()); - } else { - return $response - ->withStatus(500) - ->withJson(['errors' => 'Problem during action creation']); - } + $obj = max(ActionModel::get()); HistoryController::add([ 'tableName' => 'actions', @@ -146,8 +127,6 @@ class ActionController return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } - $errors = []; - $obj = $request->getParams(); $obj['id'] = $aArgs['id']; @@ -198,29 +177,18 @@ class ActionController ->withJson(['errors' => 'Id is not a numeric']); } - if (isset($aArgs['id'])) { - $id = $aArgs['id']; - $obj = ActionModel::getById(['id' => $id]); - ActionModel::delete(['id' => $id]); - } else { - return $response - ->withStatus(500) - ->withJson(['errors' => 'id is empty']); - } + $action = ActionModel::getById(['id' => $aArgs['id']]); // TODO select label_action + ActionModel::delete(['id' => $aArgs['id']]); HistoryController::add([ 'tableName' => 'actions', - 'recordId' => $id, + 'recordId' => $aArgs['id'], 'eventType' => 'DEL', 'eventId' => 'actiondel', - 'info' => _ACTION. ' "' . $obj['label_action'] .'" ' ._DELETED + 'info' => _ACTION. ' "' . $action['label_action'] .'" ' ._DELETED ]); - return $response->withJson( - [ - 'action' => ActionModel::get() - ] - ); + return $response->withJson(['action' => ActionModel::get()]); } protected function control($aArgs, $mode) diff --git a/src/app/action/models/ActionModelAbstract.php b/src/app/action/models/ActionModelAbstract.php index 8f8ade28409bf71078830ed74df939b78aafa9ff..d70b2aee5f51f61fd38966642b83b303c30bcdeb 100644 --- a/src/app/action/models/ActionModelAbstract.php +++ b/src/app/action/models/ActionModelAbstract.php @@ -11,9 +11,9 @@ namespace Action\models; -use Core\Models\CoreConfigModel; use Core\Models\DatabaseModel; use Core\Models\ValidatorModel; +use SrcCore\models\CoreConfigModel; class ActionModelAbstract { @@ -60,38 +60,37 @@ class ActionModelAbstract return $aReturn; } - public static function create(array $aArgs = []) + public static function create(array $aArgs) { $actioncategories = $aArgs['actionCategories']; unset($aArgs['actionCategories']); - $aReturn = DatabaseModel::insert( - [ + DatabaseModel::insert([ 'table' => 'actions', 'columnsValues' => $aArgs - ] - ); + ]); $tab['action_id'] = max(ActionModel::get())['id']; for ($i=0;$i<count($actioncategories);$i++) { $tab['category_id'] = $actioncategories[$i]; - $aInsert = DatabaseModel::insert( + DatabaseModel::insert( [ 'table' => 'actions_categories', 'columnsValues' => $tab ] ); } - return $aReturn; + + return true; } - public static function update(array $aArgs = []) + public static function update(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id']); ValidatorModel::intVal($aArgs, ['id']); - $aReturn = DatabaseModel::update( - ['table' => 'actions', + DatabaseModel::update([ + 'table' => 'actions', 'set' => [ 'keyword' => $aArgs['keyword'], 'label_action' => $aArgs['label_action'], @@ -101,60 +100,50 @@ class ActionModelAbstract 'is_folder_action' => $aArgs['is_folder_action'] ], 'where' => ['id = ?'], - 'data' => [$aArgs['id']]] - ); + 'data' => [$aArgs['id']] + ]); - $aDelete = DatabaseModel::delete( - ['table' => 'actions_categories', + DatabaseModel::delete([ + 'table' => 'actions_categories', 'where' => ['action_id = ?'], 'data' => [$aArgs['id']] - ] - ); + ]); $tab['action_id'] = $aArgs['id']; - for ($i=0;$i<count($aArgs['actionCategories']);$i++) { - $tab['category_id']=$aArgs['actionCategories'][$i]; - $aInsert = DatabaseModel::insert( - [ + for ($i=0; $i < count($aArgs['actionCategories']); $i++) { + $tab['category_id'] = $aArgs['actionCategories'][$i]; + DatabaseModel::insert([ 'table' => 'actions_categories', 'columnsValues' => $tab - ] - ); + ]); } - return $aReturn; + return true; } - public static function delete(array $aArgs = []) + public static function delete(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id']); ValidatorModel::intVal($aArgs, ['id']); - $aReturn = DatabaseModel::delete( - [ - 'table' => 'actions', - 'where' => ['id = ?'], - 'data' => [$aArgs['id']] - ] - ); - DatabaseModel::delete( - [ - 'table' => 'actions_categories', - 'where' => ['action_id = ?'], - 'data' => [$aArgs['id']] - ] - ); - - DatabaseModel::delete( - [ - 'table' => 'actions_groupbaskets', - 'where' => ['id_action = ?'], - 'data' => [$aArgs['id']] - ] - ); + DatabaseModel::delete([ + 'table' => 'actions', + 'where' => ['id = ?'], + 'data' => [$aArgs['id']] + ]); + DatabaseModel::delete([ + 'table' => 'actions_categories', + 'where' => ['action_id = ?'], + 'data' => [$aArgs['id']] + ]); + DatabaseModel::delete([ + 'table' => 'actions_groupbaskets', + 'where' => ['id_action = ?'], + 'data' => [$aArgs['id']] + ]); - return $aReturn; + return true; } public static function getAction_pages() diff --git a/src/app/basket/models/BasketModelAbstract.php b/src/app/basket/models/BasketModelAbstract.php index 325c422762d5fc820a0a0adf83a94bd5c5851579..2671faa8c1fc032be24aaf2f4e1b2cea29f988da 100644 --- a/src/app/basket/models/BasketModelAbstract.php +++ b/src/app/basket/models/BasketModelAbstract.php @@ -14,12 +14,12 @@ namespace Basket\models; -use Core\Models\CoreConfigModel; use Core\Models\DatabaseModel; use Core\Models\UserModel; use Core\Models\ValidatorModel; use Resource\models\ResModel; use SrcCore\controllers\PreparedClauseController; +use SrcCore\models\CoreConfigModel; class BasketModelAbstract { diff --git a/src/app/history/models/HistoryModelAbstract.php b/src/app/history/models/HistoryModelAbstract.php index 2cfde741d56d71f8d88e9cc33d81415edb6af41e..537b2325a200d7c219fe1bff90156042205d06bd 100644 --- a/src/app/history/models/HistoryModelAbstract.php +++ b/src/app/history/models/HistoryModelAbstract.php @@ -15,9 +15,9 @@ namespace History\models; -use Core\Models\CoreConfigModel; use Core\Models\DatabaseModel; use Core\Models\ValidatorModel; +use SrcCore\models\CoreConfigModel; require_once('apps/maarch_entreprise/tools/log4php/Logger.php'); //TODO composer diff --git a/src/app/report/models/ReportModelAbstract.php b/src/app/report/models/ReportModelAbstract.php index 065cc9db969453604b28bbd626ae59739e806bb5..060c7dc5055f5db151e59145c331b185cae712fe 100644 --- a/src/app/report/models/ReportModelAbstract.php +++ b/src/app/report/models/ReportModelAbstract.php @@ -14,9 +14,9 @@ namespace Report\models; -use Core\Models\CoreConfigModel; use Core\Models\DatabaseModel; use Core\Models\ValidatorModel; +use SrcCore\models\CoreConfigModel; class ReportModelAbstract { diff --git a/core/Models/CoreConfigModel.php b/src/core/models/CoreConfigModel.php old mode 100755 new mode 100644 similarity index 99% rename from core/Models/CoreConfigModel.php rename to src/core/models/CoreConfigModel.php index aab77fe2c31de311ced63a47b0ce6aaaeb3ccfb3..a95a430d17bbfe08cf772052d7388baecbabe385 --- a/core/Models/CoreConfigModel.php +++ b/src/core/models/CoreConfigModel.php @@ -13,9 +13,11 @@ * @ingroup core */ -namespace Core\Models; +namespace SrcCore\models; //This model is not customizable +use Core\Models\ValidatorModel; + class CoreConfigModel { public static function getCustomId() @@ -184,6 +186,7 @@ class CoreConfigModel $categoriesTypes[] = $categoriesTmp; } } + return $categoriesTypes; }