diff --git a/rest/index.php b/rest/index.php index 2df7b6db4a738556eef7c4bdb44551704fe79b0d..09a7b97919955937a55bb0aa2da1d4c7b5beb1ec 100755 --- a/rest/index.php +++ b/rest/index.php @@ -561,6 +561,7 @@ $app->get('/externalSummary/{resId}', \ExternalSummary\controllers\SummaryContro $app->get('/externalConnectionsEnabled', \SrcCore\controllers\CoreController::class . ':externalConnectionsEnabled'); //Alfresco +$app->get('/alfresco/accounts', \Alfresco\controllers\AlfrescoController::class . ':getAccounts'); $app->get('/alfresco/rootFolders', \Alfresco\controllers\AlfrescoController::class . ':getRootFolders'); $app->get('/alfresco/folders/{id}/children', \Alfresco\controllers\AlfrescoController::class . ':getChildrenFoldersById'); $app->get('/alfresco/autocomplete/folders', \Alfresco\controllers\AlfrescoController::class . ':getFolders'); diff --git a/src/app/external/alfresco/AlfrescoController.php b/src/app/external/alfresco/controllers/AlfrescoController.php similarity index 94% rename from src/app/external/alfresco/AlfrescoController.php rename to src/app/external/alfresco/controllers/AlfrescoController.php index b56869e93a6d4c268a4a44d4385a5913ec353b59..31fc3794d119963601d0f02e39e6306eb23546ab 100644 --- a/src/app/external/alfresco/AlfrescoController.php +++ b/src/app/external/alfresco/controllers/AlfrescoController.php @@ -17,6 +17,8 @@ namespace Alfresco\controllers; use Attachment\models\AttachmentModel; use Convert\controllers\ConvertPdfController; use Docserver\models\DocserverModel; +use Entity\models\EntityModel; +use Group\controllers\PrivilegeController; use Resource\models\ResModel; use Respect\Validation\Validator; use Slim\Http\Request; @@ -29,6 +31,30 @@ use User\models\UserModel; class AlfrescoController { + public function getAccounts(Request $request, Response $response) + { +// if (!PrivilegeController::hasPrivilege(['privilegeId' => 'admin_alfresco', 'userId' => $GLOBALS['id']])) { +// return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); +// } + + $entities = EntityModel::get(['select' => ['external_id'], 'where' => ["external_id->>'alfresco' is not null"]]); + + $accounts = []; + $alreadyAdded = []; + foreach ($entities as $entity) { + $alfresco = json_decode($entity['external_id'], true); + if (!in_array($alfresco['alfresco']['login'], $alreadyAdded)) { + $accounts[] = [ + 'label' => $alfresco['alfresco']['label'], + 'login' => $alfresco['alfresco']['login'] + ]; + $alreadyAdded[] = $alfresco['alfresco']['login']; + } + } + + return $response->withJson(['accounts' => $accounts]); + } + public function getRootFolders(Request $request, Response $response) { $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'apps/maarch_entreprise/xml/alfrescoConfig.xml']); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index a72ebae430e78c7c5a2b88ca854520766d160fe2..9957860cc00df6aeb93bbc8ab304f2b4491806de 100755 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -80,6 +80,7 @@ return array( 'Clue\\StreamFilter\\' => array($vendorDir . '/clue/stream-filter/src'), 'Basket\\' => array($baseDir . '/src/app/basket'), 'Attachment\\' => array($baseDir . '/src/app/attachment'), + 'Alfresco\\' => array($baseDir . '/src/app/external/alfresco'), 'Administration\\' => array($baseDir . '/src/app/administration'), 'Action\\' => array($baseDir . '/src/app/action'), 'AcknowledgementReceipt\\' => array($baseDir . '/src/app/acknowledgementReceipt'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index d4fac7b310d7bbd97dddf32dd9b6f9ea9cdbf93d..30df62dbc5cb326d798157b91b5220a199a213a5 100755 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -160,6 +160,7 @@ class ComposerStaticInitf21aebccfa6df888200dcb099aa69fbd 'A' => array ( 'Attachment\\' => 11, + 'Alfresco\\' => 9, 'Administration\\' => 15, 'Action\\' => 7, 'AcknowledgementReceipt\\' => 23, @@ -465,6 +466,10 @@ class ComposerStaticInitf21aebccfa6df888200dcb099aa69fbd array ( 0 => __DIR__ . '/../..' . '/src/app/attachment', ), + 'Alfresco\\' => + array ( + 0 => __DIR__ . '/../..' . '/src/app/external/alfresco', + ), 'Administration\\' => array ( 0 => __DIR__ . '/../..' . '/src/app/administration',