diff --git a/apps/maarch_entreprise/js/functions.js b/apps/maarch_entreprise/js/functions.js index 6373aa5f6a04e0995a30e3938b0826721168bfef..b23e59c88bed6b5b47c38f87fc4c7619c2998f22 100755 --- a/apps/maarch_entreprise/js/functions.js +++ b/apps/maarch_entreprise/js/functions.js @@ -1813,7 +1813,7 @@ function checkCommunication(contactId){ } $j.ajax({ - url : '../../rest/contact/checkCommunication/'+contactId, + url : '../../rest/contacts/' +contactId+ '/communication', type : 'get', data: { }, diff --git a/core/Test/GroupControllerTest.php b/core/Test/GroupControllerTest.php index a429d1afa3743a4e2ae4c949939b57098ba6c56c..d29e3a09681069d490f93da7c019e8f639145308 100644 --- a/core/Test/GroupControllerTest.php +++ b/core/Test/GroupControllerTest.php @@ -7,9 +7,9 @@ * */ -namespace MaarchTest; use PHPUnit\Framework\TestCase; + class GroupControllerTest extends TestCase { private static $id = null; @@ -17,17 +17,17 @@ class GroupControllerTest extends TestCase public function testCreate() { - $groupController = new \Core\Controllers\GroupController(); + $groupController = new \Group\controllers\GroupController(); // CREATE $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']); $request = \Slim\Http\Request::createFromEnvironment($environment); $aArgs = [ - 'group_id' => 'TEST-Justice League', - 'group_desc' => 'Beyond the darkness', - 'security' => [ - 'where_clause' => '1=2', + 'group_id' => 'TEST-JusticeLeague', + 'group_desc' => 'Beyond the darkness', + 'security' => [ + 'where_clause' => '1=2', 'maarch_comment' => 'commentateur du dimanche' ] ]; @@ -36,9 +36,9 @@ class GroupControllerTest extends TestCase $response = $groupController->create($fullRequest, new \Slim\Http\Response()); $responseBody = json_decode((string)$response->getBody()); - self::$id = $responseBody->group->id . ''; + self::$id = $responseBody->group . ''; - $this->assertInternalType('int', $responseBody->group->id); + $this->assertInternalType('int', $responseBody->group); // READ $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); @@ -46,7 +46,7 @@ class GroupControllerTest extends TestCase $response = $groupController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); $responseBody = json_decode((string)$response->getBody()); - $this->assertSame('TEST-Justice League', $responseBody->group->group_id); + $this->assertSame('TEST-JusticeLeague', $responseBody->group->group_id); $this->assertSame('Beyond the darkness', $responseBody->group->group_desc); $this->assertSame('Y', $responseBody->group->enabled); $this->assertSame('1=2', $responseBody->group->security->where_clause); @@ -57,7 +57,7 @@ class GroupControllerTest extends TestCase public function testUpdate() { - $groupController = new \Core\Controllers\GroupController(); + $groupController = new \Group\controllers\GroupController(); // UPDATE $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); @@ -83,24 +83,27 @@ class GroupControllerTest extends TestCase $response = $groupController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); $responseBody = json_decode((string)$response->getBody()); - $this->assertSame('TEST-Justice League', $responseBody->group->group_id); + $this->assertSame('TEST-JusticeLeague', $responseBody->group->group_id); $this->assertSame('Beyond the darkness #2', $responseBody->group->group_desc); $this->assertSame('Y', $responseBody->group->enabled); $this->assertSame('1=3', $responseBody->group->security->where_clause); $this->assertSame('commentateur du dimanche #2', $responseBody->group->security->maarch_comment); $this->assertSame(null, $responseBody->group->security->mr_start_date); $this->assertSame(null, $responseBody->group->security->mr_stop_date); - } public function testDelete() { - $groupController = new \Core\Controllers\GroupController(); + $groupController = new \Group\controllers\GroupController(); // DELETE $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']); $request = \Slim\Http\Request::createFromEnvironment($environment); $response = $groupController->delete($request, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->groups); + $this->assertNotEmpty($responseBody->groups); // READ $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); @@ -108,7 +111,7 @@ class GroupControllerTest extends TestCase $response = $groupController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); $responseBody = json_decode((string)$response->getBody()); - $this->assertSame(null, $responseBody->id); + $this->assertSame('Group not found', $responseBody->errors); } } diff --git a/core/Test/UserControllerTest.php b/core/Test/UserControllerTest.php index 67f82b39b47814071a1019597e0c496cb3f2a9f8..3ff9100c46540c71cb0d8d8c5b52cd48a79d8243 100755 --- a/core/Test/UserControllerTest.php +++ b/core/Test/UserControllerTest.php @@ -15,6 +15,22 @@ class UserControllerTest extends TestCase private static $id = null; + public function testGet() + { + $userController = new \User\controllers\UserController(); + + // READ + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + + $response = $userController->get($request, new \Slim\Http\Response()); + $responseBody = json_decode((string)$response->getBody()); + + + $this->assertInternalType('array', $responseBody->users); + $this->assertNotEmpty('array', $responseBody->users); + } + public function testCreate() { $userController = new \User\controllers\UserController(); @@ -96,6 +112,261 @@ class UserControllerTest extends TestCase $this->assertSame(null, $responseBody->thumbprint); } + public function testAddGroup() + { + $userController = new \User\controllers\UserController(); + + // CREATE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $aArgs = [ + 'groupId' => 'AGENT', + 'role' => 'Douche' + ]; + $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); + + $response = $userController->addGroup($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->groups); + $this->assertInternalType('array', $responseBody->baskets); + + // READ + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $userController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame(self::$id, $responseBody->id); + $this->assertInternalType('array', $responseBody->groups); + $this->assertSame('AGENT', $responseBody->groups[0]->group_id); + $this->assertSame('Douche', $responseBody->groups[0]->role); + } + + public function testUpdateGroup() + { + $userController = new \User\controllers\UserController(); + + // UPDATE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $aArgs = [ + 'role' => 'role updated' + ]; + $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); + + $response = $userController->updateGroup($fullRequest, new \Slim\Http\Response(), ['id' => self::$id, 'groupId' => 'AGENT']); + $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 = $userController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame(self::$id, $responseBody->id); + $this->assertInternalType('array', $responseBody->groups); + $this->assertSame('AGENT', $responseBody->groups[0]->group_id); + $this->assertSame('role updated', $responseBody->groups[0]->role); + } + + public function testDeleteGroup() + { + $userController = new \User\controllers\UserController(); + + // DELETE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $userController->deleteGroup($request, new \Slim\Http\Response(), ['id' => self::$id, 'groupId' => 'AGENT']); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->groups); + $this->assertEmpty($responseBody->groups); + $this->assertInternalType('array', $responseBody->baskets); + + // READ + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $userController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame(self::$id, $responseBody->id); + $this->assertInternalType('array', $responseBody->groups); + $this->assertEmpty($responseBody->groups); + } + + public function testAddEntity() + { + $userController = new \User\controllers\UserController(); + + // CREATE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $aArgs = [ + 'entityId' => 'DGS', + 'role' => 'Warrior' + ]; + $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); + + $response = $userController->addEntity($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->entities); + $this->assertInternalType('array', $responseBody->allEntities); + + // CREATE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $aArgs = [ + 'entityId' => 'FIN', + 'role' => 'Hunter' + ]; + $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); + + $response = $userController->addEntity($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->entities); + $this->assertInternalType('array', $responseBody->allEntities); + + // READ + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $userController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame(self::$id, $responseBody->id); + $this->assertInternalType('array', $responseBody->entities); + $this->assertSame('DGS', $responseBody->entities[0]->entity_id); + $this->assertSame('Warrior', $responseBody->entities[0]->user_role); + $this->assertSame('Y', $responseBody->entities[0]->primary_entity); + $this->assertSame('FIN', $responseBody->entities[1]->entity_id); + $this->assertSame('Hunter', $responseBody->entities[1]->user_role); + $this->assertSame('N', $responseBody->entities[1]->primary_entity); + } + + public function testUpdateEntity() + { + $userController = new \User\controllers\UserController(); + + // UPDATE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $aArgs = [ + 'user_role' => 'Rogue' + ]; + $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); + + $response = $userController->updateEntity($fullRequest, new \Slim\Http\Response(), ['id' => self::$id, 'entityId' => 'DGS']); + $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 = $userController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame(self::$id, $responseBody->id); + $this->assertInternalType('array', $responseBody->entities); + $this->assertSame('DGS', $responseBody->entities[0]->entity_id); + $this->assertSame('Rogue', $responseBody->entities[0]->user_role); + $this->assertSame('Y', $responseBody->entities[0]->primary_entity); + } + + public function testUpdatePrimaryEntity() + { + $userController = new \User\controllers\UserController(); + + // UPDATE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + + $response = $userController->updatePrimaryEntity($request, new \Slim\Http\Response(), ['id' => self::$id, 'entityId' => 'FIN']); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->entities); + + // READ + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $userController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame(self::$id, $responseBody->id); + $this->assertInternalType('array', $responseBody->entities); + $this->assertSame('FIN', $responseBody->entities[0]->entity_id); + $this->assertSame('Hunter', $responseBody->entities[0]->user_role); + $this->assertSame('Y', $responseBody->entities[0]->primary_entity); + $this->assertSame('DGS', $responseBody->entities[1]->entity_id); + $this->assertSame('Rogue', $responseBody->entities[1]->user_role); + $this->assertSame('N', $responseBody->entities[1]->primary_entity); + } + + public function testDeleteEntity() + { + $userController = new \User\controllers\UserController(); + + // DELETE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $userController->deleteEntity($request, new \Slim\Http\Response(), ['id' => self::$id, 'entityId' => 'FIN']); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->entities); + $this->assertInternalType('array', $responseBody->allEntities); + + // DELETE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $userController->deleteEntity($request, new \Slim\Http\Response(), ['id' => self::$id, 'entityId' => 'DGS']); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertInternalType('array', $responseBody->entities); + $this->assertEmpty($responseBody->entities); + $this->assertInternalType('array', $responseBody->allEntities); + + // READ + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $userController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame(self::$id, $responseBody->id); + $this->assertInternalType('array', $responseBody->entities); + $this->assertEmpty($responseBody->entities); + } + + public function testUpdateStatus() + { + $userController = new \User\controllers\UserController(); + + // UPDATE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $aArgs = [ + 'status' => 'ABS' + ]; + $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); + + $response = $userController->updateStatus($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame('ABS', $responseBody->user->status); + + // READ + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = $userController->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame(self::$id, $responseBody->id); + $this->assertSame('ABS', $responseBody->status); + } + public function testRead() { $userController = new \User\controllers\UserController(); @@ -109,7 +380,7 @@ class UserControllerTest extends TestCase 'param_value_int' => 0 ]; $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); - $response = $parameterController->update($fullRequest, new \Slim\Http\Response(), ['id' => 'user_quota']); + $parameterController->update($fullRequest, new \Slim\Http\Response(), ['id' => 'user_quota']); // READ in case of deactivated user_quota $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); @@ -129,7 +400,7 @@ class UserControllerTest extends TestCase 'param_value_int' => 20 ]; $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); - $response = $parameterController->update($fullRequest, new \Slim\Http\Response(), ['id' => 'user_quota']); + $parameterController->update($fullRequest, new \Slim\Http\Response(), ['id' => 'user_quota']); // READ in case of enabled user_quotat $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); @@ -217,7 +488,7 @@ class UserControllerTest extends TestCase 'param_value_int' => 0 ]; $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); - $response = $parameterController->update($fullRequest, new \Slim\Http\Response(), ['id' => 'user_quota']); + $parameterController->update($fullRequest, new \Slim\Http\Response(), ['id' => 'user_quota']); } public function testDelete() @@ -257,4 +528,94 @@ class UserControllerTest extends TestCase ]); } + public function testPasswordManagement() + { + $userController = new \User\controllers\UserController(); + + // UPDATE PASSWORD + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $aArgs = [ + 'currentPassword' => 'superadmin', + 'newPassword' => 'hcraam', + 'reNewPassword' => 'hcraam' + ]; + $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); + + $response = $userController->updateCurrentUserPassword($fullRequest, new \Slim\Http\Response()); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame('success', $responseBody->success); + + $checkPassword = \SrcCore\models\SecurityModel::authentication(['userId' => $GLOBALS['userId'], 'password' => 'hcraam']); + + $this->assertSame(true, $checkPassword); + + // RESET PASSWORD + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $aArgs = []; + $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); + + $user = \User\models\UserModel::getByUserId(['userId' => $GLOBALS['userId'], 'select' => ['id']]); + $response = $userController->resetPassword($fullRequest, new \Slim\Http\Response(), ['id' => $user['id']]); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame('success', $responseBody->success); + + $checkPassword = \SrcCore\models\SecurityModel::authentication(['userId' => $GLOBALS['userId'], 'password' => 'maarch']); + + $this->assertSame(true, $checkPassword); + + // UPDATE PASSWORD + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $aArgs = [ + 'currentPassword' => 'maarch', + 'newPassword' => 'superadmin', + 'reNewPassword' => 'superadmin' + ]; + $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); + + $response = $userController->updateCurrentUserPassword($fullRequest, new \Slim\Http\Response()); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame('success', $responseBody->success); + + $checkPassword = \SrcCore\models\SecurityModel::authentication(['userId' => $GLOBALS['userId'], 'password' => 'superadmin']); + + $this->assertSame(true, $checkPassword); + } + + public function testUpdateProfile() + { + $userController = new \User\controllers\UserController(); + + // UPDATE + $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); + $request = \Slim\Http\Request::createFromEnvironment($environment); + $aArgs = [ + 'firstname' => 'Wonder', + 'lastname' => 'User', + 'mail' => 'dev@maarch.org', + 'initials' => 'SU' + ]; + $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); + + $response = $userController->updateProfile($fullRequest, new \Slim\Http\Response()); + $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 = $userController->getProfile($request, new \Slim\Http\Response()); + $responseBody = json_decode((string)$response->getBody()); + + $this->assertSame('superadmin', $responseBody->user_id); + $this->assertSame('Wonder', $responseBody->firstname); + $this->assertSame('dev@maarch.org', $responseBody->mail); + $this->assertSame('SU', $responseBody->initials); + } } diff --git a/modules/sendmail/Controllers/ReceiveMessageExchangeController.php b/modules/sendmail/Controllers/ReceiveMessageExchangeController.php index 2baddb775294501715dc2765bc6cb8c9c9c46816..a01f08ce3078817d94ace1f6d6566e63ef2d88f9 100644 --- a/modules/sendmail/Controllers/ReceiveMessageExchangeController.php +++ b/modules/sendmail/Controllers/ReceiveMessageExchangeController.php @@ -122,7 +122,7 @@ class ReceiveMessageExchangeController if (!empty($userBaskets)) { foreach ($userBaskets as $value) { if ($value['basket_id'] == $aDefaultConfig['basketRedirection_afterUpload'][0]) { - $userGroups = UserModel::getGroupsById(['userId' => $_SESSION['user']['UserId']]); + $userGroups = UserModel::getGroupsByUserId(['userId' => $_SESSION['user']['UserId']]); foreach ($userGroups as $userGroupValue) { if ($userGroupValue['primary_group'] == 'Y') { $userPrimaryGroup = $userGroupValue['group_id']; diff --git a/phpunit.xml b/phpunit.xml index 281e809637d11d65b3a08fbb1b42bafa9a373f37..4ecffe5187b8d6b52160a6927434a5ef5d940f61 100755 --- a/phpunit.xml +++ b/phpunit.xml @@ -8,6 +8,7 @@ <file>core/Test/ContactControllerTest.php</file> <file>core/Test/DoctypeControllerTest.php</file> <file>core/Test/EntityControllerTest.php</file> + <file>core/Test/GroupControllerTest.php</file> <file>core/Test/ListTemplateControllerTest.php</file> <file>core/Test/NotificationControllerTest.php</file> <file>core/Test/NotificationScheduleControllerTest.php</file> @@ -17,7 +18,6 @@ <file>core/Test/ResControllerTest.php</file> <file>core/Test/StatusControllerTest.php</file> <file>core/Test/UserControllerTest.php</file> - <!-- <file>core/Test/GroupControllerTest.php</file> --> <file>modules/convert/Test/ProcessConvertTest.php</file> <file>modules/convert/Test/ProcessFulltextTest.php</file> <file>modules/convert/Test/ProcessManageConvertTest.php</file> diff --git a/rest/index.php b/rest/index.php index 198d8970d83763f9902568c715cefe8289741ff5..28b575a6ff0bb4034688f4dfc1e240c1a94c0973 100755 --- a/rest/index.php +++ b/rest/index.php @@ -141,14 +141,45 @@ $app->get('/baskets/{id}/groups/data', \Basket\controllers\BasketController::cla $app->get('/sortedBaskets', \Basket\controllers\BasketController::class . ':getSorted'); $app->put('/sortedBaskets/{id}', \Basket\controllers\BasketController::class . ':updateSort'); -//statuses -$app->get('/statuses', \Status\controllers\StatusController::class . ':get'); -$app->post('/statuses', \Status\controllers\StatusController::class . ':create'); -$app->get('/statuses/{identifier}', \Status\controllers\StatusController::class . ':getByIdentifier'); -$app->get('/status/{id}', \Status\controllers\StatusController::class . ':getById'); -$app->put('/statuses/{identifier}', \Status\controllers\StatusController::class . ':update'); -$app->delete('/statuses/{identifier}', \Status\controllers\StatusController::class . ':delete'); -$app->get('/administration/statuses/new', \Status\controllers\StatusController::class . ':getNewInformations'); +//Contacts +$app->post('/contacts', \Contact\controllers\ContactController::class . ':create'); +$app->get('/contacts/{contactId}/communication', \Contact\controllers\ContactController::class . ':getCommunicationByContactId'); + +//Docservers +$app->get('/docservers', \Docserver\controllers\DocserverController::class . ':get'); +$app->get('/docservers/{id}', \Docserver\controllers\DocserverController::class . ':getById'); + +//DocserverTypes +$app->get('/docserverTypes', \Docserver\controllers\DocserverTypeController::class . ':get'); +$app->get('/docserverTypes/{id}', \Docserver\controllers\DocserverTypeController::class . ':getById'); + +//doctypes +$app->get('/doctypes', \Doctype\controllers\FirstLevelController::class . ':getTree'); +$app->post('/doctypes/firstLevel', \Doctype\controllers\FirstLevelController::class . ':create'); +$app->get('/doctypes/firstLevel/{id}', \Doctype\controllers\FirstLevelController::class . ':getById'); +$app->put('/doctypes/firstLevel/{id}', \Doctype\controllers\FirstLevelController::class . ':update'); +$app->delete('/doctypes/firstLevel/{id}', \Doctype\controllers\FirstLevelController::class . ':delete'); +$app->post('/doctypes/secondLevel', \Doctype\controllers\SecondLevelController::class . ':create'); +$app->get('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':getById'); +$app->put('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':update'); +$app->delete('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':delete'); +$app->post('/doctypes/types', \Doctype\controllers\DoctypeController::class . ':create'); +$app->get('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':getById'); +$app->put('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':update'); +$app->delete('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':delete'); +$app->put('/doctypes/types/{id}/redirect', \Doctype\controllers\DoctypeController::class . ':deleteRedirect'); +$app->get('/administration/doctypes/new', \Doctype\controllers\FirstLevelController::class . ':initDoctypes'); + +//Entities +$app->get('/entities', \Entity\controllers\EntityController::class . ':get'); +$app->post('/entities', \Entity\controllers\EntityController::class . ':create'); +$app->get('/entities/{id}', \Entity\controllers\EntityController::class . ':getById'); +$app->put('/entities/{id}', \Entity\controllers\EntityController::class . ':update'); +$app->delete('/entities/{id}', \Entity\controllers\EntityController::class . ':delete'); +$app->get('/entities/{id}/details', \Entity\controllers\EntityController::class . ':getDetailledById'); +$app->put('/entities/{id}/reassign/{newEntityId}', \Entity\controllers\EntityController::class . ':reassignEntity'); +$app->put('/entities/{id}/status', \Entity\controllers\EntityController::class . ':updateStatus'); +$app->get('/entityTypes', \Entity\controllers\EntityController::class . ':getTypes'); //Groups $app->get('/groups', \Group\controllers\GroupController::class . ':get'); @@ -160,13 +191,60 @@ $app->get('/groups/{id}/details', \Group\controllers\GroupController::class . ': $app->put('/groups/{id}/services/{serviceId}', \Group\controllers\GroupController::class . ':updateService'); $app->put('/groups/{id}/reassign/{newGroupId}', \Group\controllers\GroupController::class . ':reassignUsers'); -//Docservers -$app->get('/docservers', \Docserver\controllers\DocserverController::class . ':get'); -$app->get('/docservers/{id}', \Docserver\controllers\DocserverController::class . ':getById'); +//Links +$app->get('/links/resId/{resId}', \Link\controllers\LinkController::class . ':getByResId'); -//DocserverTypes -$app->get('/docserverTypes', \Docserver\controllers\DocserverTypeController::class . ':get'); -$app->get('/docserverTypes/{id}', \Docserver\controllers\DocserverTypeController::class . ':getById'); +//Listinstance +$app->get('/listinstance/{id}', \Entity\controllers\ListInstanceController::class . ':getById'); + +//ListTemplates +$app->get('/listTemplates', \Entity\controllers\ListTemplateController::class . ':get'); +$app->post('/listTemplates', \Entity\controllers\ListTemplateController::class . ':create'); +$app->get('/listTemplates/{id}', \Entity\controllers\ListTemplateController::class . ':getById'); +$app->put('/listTemplates/{id}', \Entity\controllers\ListTemplateController::class . ':update'); +$app->delete('/listTemplates/{id}', \Entity\controllers\ListTemplateController::class . ':delete'); +$app->get('/listTemplates/entityDest/itemId/{itemId}', \Entity\controllers\ListTemplateController::class . ':getByUserWithEntityDest'); +$app->put('/listTemplates/entityDest/itemId/{itemId}', \Entity\controllers\ListTemplateController::class . ':updateByUserWithEntityDest'); +$app->put('/listTemplates/types/roles', \Entity\controllers\ListTemplateController::class . ':updateTypes'); + +//Parameters +$app->get('/parameters', \Parameter\controllers\ParameterController::class . ':get'); +$app->post('/parameters', \Parameter\controllers\ParameterController::class . ':create'); +$app->get('/parameters/{id}', \Parameter\controllers\ParameterController::class . ':getById'); +$app->put('/parameters/{id}', \Parameter\controllers\ParameterController::class . ':update'); +$app->delete('/parameters/{id}', \Parameter\controllers\ParameterController::class . ':delete'); + +//Priorities +$app->get('/priorities', \Priority\controllers\PriorityController::class . ':get'); +$app->post('/priorities', \Priority\controllers\PriorityController::class . ':create'); +$app->get('/priorities/{id}', \Priority\controllers\PriorityController::class . ':getById'); +$app->put('/priorities/{id}', \Priority\controllers\PriorityController::class . ':update'); +$app->delete('/priorities/{id}', \Priority\controllers\PriorityController::class . ':delete'); + +//Reports +$app->get('/reports/groups', \Report\controllers\ReportController::class . ':getGroups'); +$app->get('/reports/groups/{groupId}', \Report\controllers\ReportController::class . ':getByGroupId'); +$app->put('/reports/groups/{groupId}', \Report\controllers\ReportController::class . ':updateForGroupId'); + +//Ressources +$app->post('/res', \Resource\controllers\ResController::class . ':create'); +$app->post('/resExt', \Resource\controllers\ResController::class . ':createExt'); +$app->put('/res/resource/status', \Resource\controllers\ResController::class . ':updateStatus'); +$app->post('/res/list', \Resource\controllers\ResController::class . ':getList'); +$app->get('/res/{resId}/lock', \Resource\controllers\ResController::class . ':isLock'); +$app->get('/res/{resId}/notes/count', \Resource\controllers\ResController::class . ':getNotesCountForCurrentUserById'); + +//statuses +$app->get('/statuses', \Status\controllers\StatusController::class . ':get'); +$app->post('/statuses', \Status\controllers\StatusController::class . ':create'); +$app->get('/statuses/{identifier}', \Status\controllers\StatusController::class . ':getByIdentifier'); +$app->get('/status/{id}', \Status\controllers\StatusController::class . ':getById'); +$app->put('/statuses/{identifier}', \Status\controllers\StatusController::class . ':update'); +$app->delete('/statuses/{identifier}', \Status\controllers\StatusController::class . ':delete'); +$app->get('/administration/statuses/new', \Status\controllers\StatusController::class . ':getNewInformations'); + +//Templates +$app->post('/templates/{id}/duplicate', \Template\controllers\TemplateController::class . ':duplicate'); //Visa $app->get('/{basketId}/signatureBook/resList', \Visa\Controllers\VisaController::class . ':getResList'); @@ -177,14 +255,6 @@ $app->get('/signatureBook/{resId}/incomingMailAttachments', \Visa\Controllers\Vi $app->put('/{collId}/{resId}/unsign', \Visa\Controllers\VisaController::class . ':unsignFile'); $app->put('/attachments/{id}/inSignatureBook', \Attachment\controllers\AttachmentController::class . ':setInSignatureBook'); -//Res -$app->post('/res', \Resource\controllers\ResController::class . ':create'); -$app->post('/resExt', \Resource\controllers\ResController::class . ':createExt'); -$app->put('/res/resource/status', \Resource\controllers\ResController::class . ':updateStatus'); -$app->post('/res/list', \Resource\controllers\ResController::class . ':getList'); -$app->get('/res/{resId}/lock', \Resource\controllers\ResController::class . ':isLock'); -$app->get('/res/{resId}/notes/count', \Resource\controllers\ResController::class . ':getNotesCountForCurrentUserById'); - //Users $app->get('/users', \User\controllers\UserController::class . ':get'); $app->post('/users', \User\controllers\UserController::class . ':create'); @@ -216,41 +286,6 @@ $app->put('/currentUser/emailSignature/{id}', \User\controllers\UserController:: $app->delete('/currentUser/emailSignature/{id}', \User\controllers\UserController::class . ':deleteCurrentUserEmailSignature'); $app->put('/currentUser/groups/{groupId}/baskets/{basketId}', \User\controllers\UserController::class . ':updateBasketPreference'); -//Entities -$app->get('/entities', \Entity\controllers\EntityController::class . ':get'); -$app->post('/entities', \Entity\controllers\EntityController::class . ':create'); -$app->get('/entities/{id}', \Entity\controllers\EntityController::class . ':getById'); -$app->put('/entities/{id}', \Entity\controllers\EntityController::class . ':update'); -$app->delete('/entities/{id}', \Entity\controllers\EntityController::class . ':delete'); -$app->get('/entities/{id}/details', \Entity\controllers\EntityController::class . ':getDetailledById'); -$app->put('/entities/{id}/reassign/{newEntityId}', \Entity\controllers\EntityController::class . ':reassignEntity'); -$app->put('/entities/{id}/status', \Entity\controllers\EntityController::class . ':updateStatus'); -$app->get('/entityTypes', \Entity\controllers\EntityController::class . ':getTypes'); - -//ListTemplates -$app->get('/listTemplates', \Entity\controllers\ListTemplateController::class . ':get'); -$app->post('/listTemplates', \Entity\controllers\ListTemplateController::class . ':create'); -$app->get('/listTemplates/{id}', \Entity\controllers\ListTemplateController::class . ':getById'); -$app->put('/listTemplates/{id}', \Entity\controllers\ListTemplateController::class . ':update'); -$app->delete('/listTemplates/{id}', \Entity\controllers\ListTemplateController::class . ':delete'); -$app->get('/listTemplates/entityDest/itemId/{itemId}', \Entity\controllers\ListTemplateController::class . ':getByUserWithEntityDest'); -$app->put('/listTemplates/entityDest/itemId/{itemId}', \Entity\controllers\ListTemplateController::class . ':updateByUserWithEntityDest'); -$app->put('/listTemplates/types/roles', \Entity\controllers\ListTemplateController::class . ':updateTypes'); - -//Parameters -$app->get('/parameters', \Parameter\controllers\ParameterController::class . ':get'); -$app->post('/parameters', \Parameter\controllers\ParameterController::class . ':create'); -$app->get('/parameters/{id}', \Parameter\controllers\ParameterController::class . ':getById'); -$app->put('/parameters/{id}', \Parameter\controllers\ParameterController::class . ':update'); -$app->delete('/parameters/{id}', \Parameter\controllers\ParameterController::class . ':delete'); - -//Priorities -$app->get('/priorities', \Priority\controllers\PriorityController::class . ':get'); -$app->post('/priorities', \Priority\controllers\PriorityController::class . ':create'); -$app->get('/priorities/{id}', \Priority\controllers\PriorityController::class . ':getById'); -$app->put('/priorities/{id}', \Priority\controllers\PriorityController::class . ':update'); -$app->delete('/priorities/{id}', \Priority\controllers\PriorityController::class . ':delete'); - //History $app->get('/administration/history/eventDate/{date}', \History\controllers\HistoryController::class . ':get'); //TODO No date $app->get('/histories/users/{userSerialId}', \History\controllers\HistoryController::class . ':getByUserId'); @@ -269,42 +304,4 @@ $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'); -//Doctypes -$app->get('/doctypes', \Doctype\controllers\FirstLevelController::class . ':getTree'); - -$app->post('/doctypes/firstLevel', \Doctype\controllers\FirstLevelController::class . ':create'); -$app->get('/doctypes/firstLevel/{id}', \Doctype\controllers\FirstLevelController::class . ':getById'); -$app->put('/doctypes/firstLevel/{id}', \Doctype\controllers\FirstLevelController::class . ':update'); -$app->delete('/doctypes/firstLevel/{id}', \Doctype\controllers\FirstLevelController::class . ':delete'); -$app->get('/administration/doctypes/new', \Doctype\controllers\FirstLevelController::class . ':initDoctypes'); - -$app->post('/doctypes/secondLevel', \Doctype\controllers\SecondLevelController::class . ':create'); -$app->get('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':getById'); -$app->put('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':update'); -$app->delete('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':delete'); - -$app->post('/doctypes/types', \Doctype\controllers\DoctypeController::class . ':create'); -$app->get('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':getById'); -$app->put('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':update'); -$app->delete('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':delete'); -$app->put('/doctypes/types/{id}/redirect', \Doctype\controllers\DoctypeController::class . ':deleteRedirect'); - -//Reports -$app->get('/reports/groups', \Report\controllers\ReportController::class . ':getGroups'); -$app->get('/reports/groups/{groupId}', \Report\controllers\ReportController::class . ':getByGroupId'); -$app->put('/reports/groups/{groupId}', \Report\controllers\ReportController::class . ':updateForGroupId'); - -//Listinstance -$app->get('/listinstance/{id}', \Entity\controllers\ListInstanceController::class . ':getById'); - -//Contacts -$app->post('/contacts', \Contact\controllers\ContactController::class . ':create'); -$app->get('/contact/checkCommunication/{contactId}', \Contact\controllers\ContactController::class . ':getCheckCommunication'); - -//Templates -$app->post('/templates/{id}/duplicate', \Template\controllers\TemplateController::class . ':duplicate'); - -//Links -$app->get('/links/resId/{resId}', \Link\controllers\LinkController::class . ':getByResId'); - $app->run(); diff --git a/sql/data_fr.sql b/sql/data_fr.sql index 2043dae9389cc72d9925c87e031b60a92b16f1de..0aacb7a0492ce1d92f1f67319abe380edabaf2e1 100755 --- a/sql/data_fr.sql +++ b/sql/data_fr.sql @@ -1140,6 +1140,7 @@ INSERT INTO parameters (id, param_value_string, param_value_int, param_value_dat INSERT INTO parameters (id, param_value_string, param_value_int, param_value_date) VALUES ('work_batch_autoimport_id', NULL, 1, NULL); INSERT INTO parameters (id, param_value_string, param_value_int, param_value_date) VALUES ('postindexing_workbatch', NULL, 1, NULL); INSERT INTO parameters (id, param_value_string, param_value_int, param_value_date) VALUES ('database_version', '17.06.2', 1706, NULL); +INSERT INTO parameters (id, param_value_string, param_value_int, param_value_date) VALUES ('user_quota', '', 0, NULL); ------------ --DIFFLIST_TYPES ------------ diff --git a/sql/develop.sql b/sql/develop.sql index 6214b6327ff21f30df2d9640ecf464bc2b1f70e4..a323e5e82710bd81a5266bd94a786a3bac1e5c5d 100755 --- a/sql/develop.sql +++ b/sql/develop.sql @@ -721,4 +721,7 @@ VALUES ('ARCHIVETRANSFER', 'Archive Transfer', 'Y', 'N', 0, 'N', 'NONE', 'N', 'N ALTER TABLE sendmail ALTER COLUMN res_id DROP NOT NULL; ALTER TABLE notifications DROP COLUMN IF EXISTS rss_url_template; -UPDATE notifications SET event_id = 'baskets' WHERE notification_id = 'BASKETS'; \ No newline at end of file +UPDATE notifications SET event_id = 'baskets' WHERE notification_id = 'BASKETS'; + +DELETE FROM parameters where id = 'user_quota'; +INSERT INTO parameters (id, param_value_string, param_value_int, param_value_date) VALUES ('user_quota', '', 0, NULL); \ No newline at end of file diff --git a/src/app/contact/controllers/ContactController.php b/src/app/contact/controllers/ContactController.php index fe5ac8d8f8fb346ee5b108413dfc80374c39752d..0c913ffa6e10c99ce52621607b2b2e7a375e7355 100644 --- a/src/app/contact/controllers/ContactController.php +++ b/src/app/contact/controllers/ContactController.php @@ -72,18 +72,12 @@ class ContactController return $response->withJson(['contactId' => $contactId, 'addressId' => $addressId]); } - public function getCheckCommunication(Request $request, Response $response, $aArgs) + public function getCommunicationByContactId(Request $request, Response $response, array $aArgs) { - if (!empty($aArgs['contactId'])) { - $obj = ContactModel::getCommunicationByContactId([ - 'contactId' => $aArgs['contactId'] - ]); - } else { - return $response - ->withStatus(500) - ->withJson(['errors' => _ID . ' ' . _IS_EMPTY]); - } + $contact = ContactModel::getCommunicationByContactId([ + 'contactId' => $aArgs['contactId'] + ]); - return $response->withJson([$obj]); + return $response->withJson([$contact]); } } diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php index a435a2c3bae4a277b9af2cd6ac1c1b93c15e943d..e7c44bd3e0a31213a5b64723e987a1852ba30b7e 100644 --- a/src/app/user/controllers/UserController.php +++ b/src/app/user/controllers/UserController.php @@ -533,18 +533,12 @@ class UserController public function deleteCurrentUserEmailSignature(Request $request, Response $response, array $aArgs) { - $r = UserModel::deleteEmailSignature([ + UserModel::deleteEmailSignature([ 'id' => $aArgs['id'], 'userId' => $GLOBALS['userId'] ]); - if (!$r) { - return $response->withStatus(500)->withJson(['errors' => 'Email Signature Delete Error']); - } - - return $response->withJson([ - 'emailSignatures' => UserModel::getEmailSignaturesById(['userId' => $GLOBALS['userId']]) - ]); + return $response->withJson(['emailSignatures' => UserModel::getEmailSignaturesById(['userId' => $GLOBALS['userId']])]); } public function addGroup(Request $request, Response $response, array $aArgs) @@ -592,7 +586,6 @@ class UserController return $response->withJson([ 'groups' => UserModel::getGroupsByUserId(['userId' => $user['user_id']]), - 'allGroups' => GroupModel::getAvailableGroupsByUserId(['userId' => $user['user_id']]), 'baskets' => BasketModel::getBasketsByUserId(['userId' => $user['user_id']]) ]); } @@ -657,7 +650,6 @@ class UserController return $response->withJson([ 'groups' => UserModel::getGroupsByUserId(['userId' => $user['user_id']]), - 'allGroups' => GroupModel::getAvailableGroupsByUserId(['userId' => $user['user_id']]), 'baskets' => BasketModel::getBasketsByUserId(['userId' => $user['user_id']]) ]); } diff --git a/src/app/user/models/UserModelAbstract.php b/src/app/user/models/UserModelAbstract.php index 2d111b14a2893d90a97a6dba88bc65bfb488e595..3e3b2ba01656f8114c9db80835c918afdcb32aa2 100644 --- a/src/app/user/models/UserModelAbstract.php +++ b/src/app/user/models/UserModelAbstract.php @@ -160,21 +160,6 @@ class UserModelAbstract return $aUser; } - public static function getGroupsById(array $aArgs = []) - { - ValidatorModel::notEmpty($aArgs, ['userId']); - ValidatorModel::stringType($aArgs, ['userId']); - - $aGroups = DatabaseModel::select([ - 'select' => ['usergroup_content.group_id', 'usergroups.group_desc', 'usergroup_content.primary_group'], - 'table' => ['usergroup_content, usergroups'], - 'where' => ['usergroup_content.group_id = usergroups.group_id', 'usergroup_content.user_id = ?'], - 'data' => [$aArgs['userId']] - ]); - - return $aGroups; - } - public static function updatePassword(array $aArgs = []) { ValidatorModel::notEmpty($aArgs, ['id', 'password']); @@ -443,26 +428,6 @@ class UserModelAbstract return $aReturn[0]['process_comment']; } - public static function getPrimaryGroupById(array $aArgs = []) - { - ValidatorModel::notEmpty($aArgs, ['userId']); - ValidatorModel::stringType($aArgs, ['userId']); - - - $aGroup = DatabaseModel::select([ - 'select' => ['usergroup_content.group_id', 'usergroups.group_desc'], - 'table' => ['usergroup_content, usergroups'], - 'where' => ['usergroup_content.group_id = usergroups.group_id', 'usergroup_content.user_id = ?', 'usergroup_content.primary_group = ?'], - 'data' => [$aArgs['userId'], 'Y'] - ]); - - if (empty($aGroup[0])) { - return []; - } - - return $aGroup[0]; - } - public static function getPrimaryEntityByUserId(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['userId']); @@ -497,7 +462,7 @@ class UserModelAbstract return $aGroups; } - public static function getEntitiesById(array $aArgs = []) + public static function getEntitiesById(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['userId']); ValidatorModel::stringType($aArgs, ['userId']);