From c38a88dbf4db1ebe76b770e397fd8bebac58f71c Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 23 Dec 2018 20:28:34 +0100 Subject: [PATCH] fixes #11 --- Admin/Routes/Web/Api.php | 11 +++++++++++ Controller/ApiController.php | 33 +++++++++++++++++++++++++++++++++ Models/PermissionState.php | 1 + 3 files changed, 45 insertions(+) diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 369ee74..3c82ce0 100644 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -186,4 +186,15 @@ return [ ], ], ], + '^.*/api/admin/module/reinit.*$' => [ + [ + 'dest' => '\Modules\Admin\Controller\ApiController:apiReInit', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionState::ROUTE, + ], + ], + ], ]; diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 022a817..a792924 100644 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -691,4 +691,37 @@ final class ApiController extends Controller $this->createModelRelation($request, $group, $accounts, GroupMapper::class, 'accounts', 'group-account'); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Group', 'Relation added', []); } + + /** + * Api re-init routes + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiReInit(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + $p = __DIR__ . '/../../../Web/*'; + $directories = \glob(__DIR__ . '/../../../Web/*' , \GLOB_ONLYDIR); + foreach ($directories as $directory) { + if (\file_exists($path = $directory . '/Routes.php')) { + \file_put_contents($path, 'app->moduleManager->getActiveModules(); + foreach ($installedModules as $name => $module) { + $this->app->moduleManager->reInit($name); + } + } } diff --git a/Models/PermissionState.php b/Models/PermissionState.php index b4b0338..a647dac 100644 --- a/Models/PermissionState.php +++ b/Models/PermissionState.php @@ -31,4 +31,5 @@ abstract class PermissionState extends Enum public const GROUP = 3; public const MODULE = 4; public const LOG = 5; + public const ROUTE = 6; }