This commit is contained in:
Dennis Eichhorn 2018-12-23 20:28:34 +01:00
parent eea481a80e
commit c38a88dbf4
3 changed files with 45 additions and 0 deletions

View File

@ -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,
],
],
],
];

View File

@ -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, '<?php return [];');
}
if (\file_exists($path = $directory . '/Hooks.php')) {
\file_put_contents($path, '<?php return [];');
}
}
$installedModules = $this->app->moduleManager->getActiveModules();
foreach ($installedModules as $name => $module) {
$this->app->moduleManager->reInit($name);
}
}
}

View File

@ -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;
}