improve module interface

This commit is contained in:
root
2026-01-07 00:06:38 -05:00
parent 3324157ed9
commit 6d0c5584bd
3 changed files with 32 additions and 11 deletions

View File

@@ -9,6 +9,7 @@ use KTXC\Service\UserAccountsService;
use KTXC\SessionIdentity;
use KTXF\Controller\ControllerAbstract;
use KTXC\SessionTenant;
use KTXF\Module\ModuleBrowserInterface;
use KTXF\Routing\Attributes\AuthenticatedRoute;
class InitController extends ControllerAbstract
@@ -21,11 +22,7 @@ class InitController extends ControllerAbstract
private readonly PermissionChecker $permissionChecker,
) {}
#[AuthenticatedRoute(
'/init',
name: 'init',
methods: ['GET']
)]
#[AuthenticatedRoute('/init', name: 'init', methods: ['GET'])]
public function index(): JsonResponse {
$configuration = [];
@@ -33,7 +30,7 @@ class InitController extends ControllerAbstract
// modules - filter by permissions
$configuration['modules'] = [];
foreach ($this->moduleManager->list() as $module) {
if (!method_exists($module, 'bootUi')) {
if ($module instanceof ModuleBrowserInterface === false) {
continue;
}
@@ -44,7 +41,7 @@ class InitController extends ControllerAbstract
continue;
}
$configuration['modules'][$handle] = $module->bootUi();
$configuration['modules'][$handle] = $module->registerBI();
}
// tenant

View File

@@ -2,6 +2,8 @@
namespace KTXC\Module;
use KTXF\Module\ModuleBrowserInterface;
use KTXF\Module\ModuleConsoleInterface;
use KTXF\Module\ModuleInstanceAbstract;
/**
@@ -9,7 +11,7 @@ use KTXF\Module\ModuleInstanceAbstract;
*
* Provides core system functionality and permissions
*/
class Module extends ModuleInstanceAbstract
class Module extends ModuleInstanceAbstract implements ModuleConsoleInterface, ModuleBrowserInterface
{
public function __construct() {}
@@ -35,7 +37,7 @@ class Module extends ModuleInstanceAbstract
public function version(): string
{
return '1.0.0';
return '0.0.1';
}
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 [];
}
}