improve module interface
This commit is contained in:
@@ -9,6 +9,7 @@ use KTXC\Service\UserAccountsService;
|
|||||||
use KTXC\SessionIdentity;
|
use KTXC\SessionIdentity;
|
||||||
use KTXF\Controller\ControllerAbstract;
|
use KTXF\Controller\ControllerAbstract;
|
||||||
use KTXC\SessionTenant;
|
use KTXC\SessionTenant;
|
||||||
|
use KTXF\Module\ModuleBrowserInterface;
|
||||||
use KTXF\Routing\Attributes\AuthenticatedRoute;
|
use KTXF\Routing\Attributes\AuthenticatedRoute;
|
||||||
|
|
||||||
class InitController extends ControllerAbstract
|
class InitController extends ControllerAbstract
|
||||||
@@ -21,11 +22,7 @@ class InitController extends ControllerAbstract
|
|||||||
private readonly PermissionChecker $permissionChecker,
|
private readonly PermissionChecker $permissionChecker,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
#[AuthenticatedRoute(
|
#[AuthenticatedRoute('/init', name: 'init', methods: ['GET'])]
|
||||||
'/init',
|
|
||||||
name: 'init',
|
|
||||||
methods: ['GET']
|
|
||||||
)]
|
|
||||||
public function index(): JsonResponse {
|
public function index(): JsonResponse {
|
||||||
|
|
||||||
$configuration = [];
|
$configuration = [];
|
||||||
@@ -33,7 +30,7 @@ class InitController extends ControllerAbstract
|
|||||||
// modules - filter by permissions
|
// modules - filter by permissions
|
||||||
$configuration['modules'] = [];
|
$configuration['modules'] = [];
|
||||||
foreach ($this->moduleManager->list() as $module) {
|
foreach ($this->moduleManager->list() as $module) {
|
||||||
if (!method_exists($module, 'bootUi')) {
|
if ($module instanceof ModuleBrowserInterface === false) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,7 +41,7 @@ class InitController extends ControllerAbstract
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$configuration['modules'][$handle] = $module->bootUi();
|
$configuration['modules'][$handle] = $module->registerBI();
|
||||||
}
|
}
|
||||||
|
|
||||||
// tenant
|
// tenant
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace KTXC\Module;
|
namespace KTXC\Module;
|
||||||
|
|
||||||
|
use KTXF\Module\ModuleBrowserInterface;
|
||||||
|
use KTXF\Module\ModuleConsoleInterface;
|
||||||
use KTXF\Module\ModuleInstanceAbstract;
|
use KTXF\Module\ModuleInstanceAbstract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -9,7 +11,7 @@ use KTXF\Module\ModuleInstanceAbstract;
|
|||||||
*
|
*
|
||||||
* Provides core system functionality and permissions
|
* Provides core system functionality and permissions
|
||||||
*/
|
*/
|
||||||
class Module extends ModuleInstanceAbstract
|
class Module extends ModuleInstanceAbstract implements ModuleConsoleInterface, ModuleBrowserInterface
|
||||||
{
|
{
|
||||||
public function __construct() {}
|
public function __construct() {}
|
||||||
|
|
||||||
@@ -35,7 +37,7 @@ class Module extends ModuleInstanceAbstract
|
|||||||
|
|
||||||
public function version(): string
|
public function version(): string
|
||||||
{
|
{
|
||||||
return '1.0.0';
|
return '0.0.1';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function permissions(): array
|
public function permissions(): array
|
||||||
@@ -94,8 +96,17 @@ class Module extends ModuleInstanceAbstract
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function bootUi(): ?array
|
public function registerCI(): array
|
||||||
{
|
{
|
||||||
return null;
|
return [
|
||||||
|
\KTXC\Console\ModuleListCommand::class,
|
||||||
|
\KTXC\Console\ModuleEnableCommand::class,
|
||||||
|
\KTXC\Console\ModuleDisableCommand::class,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function registerBI(): array
|
||||||
|
{
|
||||||
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
13
shared/lib/Module/ModuleBrowserInterface.php
Normal file
13
shared/lib/Module/ModuleBrowserInterface.php
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace KTXF\Module;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module Browser Interface
|
||||||
|
*/
|
||||||
|
interface ModuleBrowserInterface
|
||||||
|
{
|
||||||
|
public function registerBI(): array;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user