Impl. console/cli draft

This commit is contained in:
Dennis Eichhorn 2022-03-11 23:20:51 +01:00
parent 7106207f0a
commit e9473abba5
9 changed files with 117 additions and 24 deletions

View File

@ -633,9 +633,33 @@
"default": null, "default": null,
"null": true "null": true
}, },
"group_permission_permission": { "group_permission_hasread": {
"name": "group_permission_permission", "name": "group_permission_hasread",
"type": "INT", "type": "TINYINT(1)",
"default": null,
"null": true
},
"group_permission_hascreate": {
"name": "group_permission_hascreate",
"type": "TINYINT(1)",
"default": null,
"null": true
},
"group_permission_hasmodify": {
"name": "group_permission_hasmodify",
"type": "TINYINT(1)",
"default": null,
"null": true
},
"group_permission_hasdelete": {
"name": "group_permission_hasdelete",
"type": "TINYINT(1)",
"default": null,
"null": true
},
"group_permission_haspermission": {
"name": "group_permission_haspermission",
"type": "TINYINT(1)",
"default": null, "default": null,
"null": true "null": true
} }
@ -857,9 +881,33 @@
"default": null, "default": null,
"null": true "null": true
}, },
"account_permission_permission": { "account_permission_hasread": {
"name": "account_permission_permission", "name": "account_permission_hasread",
"type": "INT", "type": "TINYINT(1)",
"default": null,
"null": true
},
"account_permission_hascreate": {
"name": "account_permission_hascreate",
"type": "TINYINT(1)",
"default": null,
"null": true
},
"account_permission_hasmodify": {
"name": "account_permission_hasmodify",
"type": "TINYINT(1)",
"default": null,
"null": true
},
"account_permission_hasdelete": {
"name": "account_permission_hasdelete",
"type": "TINYINT(1)",
"default": null,
"null": true
},
"account_permission_haspermission": {
"name": "account_permission_haspermission",
"type": "TINYINT(1)",
"default": null, "default": null,
"null": true "null": true
} }

18
Admin/Routes/Cli.php Executable file
View File

@ -0,0 +1,18 @@
<?php declare(strict_types=1);
use phpOMS\Router\RouteVerb;
return [
'^$' => [
[
'dest' => '\Modules\Admin\Controller\CliController:viewEmptyCommand',
'verb' => RouteVerb::ANY,
],
],
'^/admin/event.*$' => [
[
'dest' => '\Modules\Admin\Controller\CliController:cliRunEvent',
'verb' => RouteVerb::ANY,
],
],
];

View File

@ -1,12 +0,0 @@
<?php declare(strict_types=1);
use phpOMS\Router\RouteVerb;
return [
'^$' => [
[
'dest' => '\Modules\Admin\ConsoleController:viewEmptyCommand',
'verb' => RouteVerb::ANY,
],
],
];

View File

@ -63,6 +63,7 @@ use phpOMS\Module\ModuleInfo;
use phpOMS\Module\ModuleStatus; use phpOMS\Module\ModuleStatus;
use phpOMS\System\File\Local\File; use phpOMS\System\File\Local\File;
use phpOMS\System\MimeType; use phpOMS\System\MimeType;
use phpOMS\System\SystemUtils;
use phpOMS\Uri\HttpUri; use phpOMS\Uri\HttpUri;
use phpOMS\Uri\UriFactory; use phpOMS\Uri\UriFactory;
use phpOMS\Utils\Parser\Markdown\Markdown; use phpOMS\Utils\Parser\Markdown\Markdown;
@ -1825,7 +1826,7 @@ final class ApiController extends Controller
} }
} }
if (\is_file($path = __DIR__ . '/../../../Console/Routes.php')) { if (\is_file($path = __DIR__ . '/../../../Cli/Routes.php')) {
\file_put_contents($path, '<?php return [];'); \file_put_contents($path, '<?php return [];');
} }

View File

@ -79,7 +79,7 @@ final class BackendController extends Controller
public function viewEmptyCommand(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface public function viewEmptyCommand(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Admin/Theme/Console/empty-command'); $view->setTemplate('/Modules/Admin/Theme/Cli/empty-command');
return $view; return $view;
} }

View File

@ -29,7 +29,7 @@ use phpOMS\Views\View;
* @link https://karaka.app * @link https://karaka.app
* @since 1.0.0 * @since 1.0.0
*/ */
final class ConsoleController extends Controller final class CliController extends Controller
{ {
/** /**
* Method which generates the general settings view. * Method which generates the general settings view.
@ -49,7 +49,37 @@ final class ConsoleController extends Controller
public function viewEmptyCommand(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface public function viewEmptyCommand(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Admin/Theme/Console/empty-command'); $view->setTemplate('/Modules/Admin/Theme/Cli/empty-command');
return $view;
}
/**
* Find and run events
*
* This is mostly used by the web applications to offload searching for event hooks and of course running the events which might take a long time for complex events.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return RenderableInterface Response can be rendered
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function cliRunEvent(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{
$event = $this->app->eventManager->triggerSimilar(
$request->getData('g'),
$request->getData('i'),
\json_decode($request->getData('d'), true)
);
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Admin/Theme/Cli/event-result');
$view->setData('event', $event);
return $view; return $view;
} }

View File

@ -42,7 +42,11 @@ final class AccountPermissionMapper extends DataMapperFactory
'account_permission_type' => ['name' => 'account_permission_type', 'type' => 'int', 'internal' => 'type'], 'account_permission_type' => ['name' => 'account_permission_type', 'type' => 'int', 'internal' => 'type'],
'account_permission_element' => ['name' => 'account_permission_element', 'type' => 'int', 'internal' => 'element'], 'account_permission_element' => ['name' => 'account_permission_element', 'type' => 'int', 'internal' => 'element'],
'account_permission_component' => ['name' => 'account_permission_component', 'type' => 'int', 'internal' => 'component'], 'account_permission_component' => ['name' => 'account_permission_component', 'type' => 'int', 'internal' => 'component'],
'account_permission_permission' => ['name' => 'account_permission_permission', 'type' => 'int', 'internal' => 'permission'], 'account_permission_hasread' => ['name' => 'account_permission_hasread', 'type' => 'bool', 'internal' => 'hasRead'],
'account_permission_hascreate' => ['name' => 'account_permission_hascreate', 'type' => 'bool', 'internal' => 'hasCreate'],
'account_permission_hasmodify' => ['name' => 'account_permission_hasmodify', 'type' => 'bool', 'internal' => 'hasCreate'],
'account_permission_hasdelete' => ['name' => 'account_permission_hasdelete', 'type' => 'bool', 'internal' => 'hasDelete'],
'account_permission_haspermission' => ['name' => 'account_permission_haspermission', 'type' => 'bool', 'internal' => 'hasPermission'],
]; ];
/** /**

View File

@ -42,7 +42,11 @@ final class GroupPermissionMapper extends DataMapperFactory
'group_permission_type' => ['name' => 'group_permission_type', 'type' => 'int', 'internal' => 'type'], 'group_permission_type' => ['name' => 'group_permission_type', 'type' => 'int', 'internal' => 'type'],
'group_permission_element' => ['name' => 'group_permission_element', 'type' => 'int', 'internal' => 'element'], 'group_permission_element' => ['name' => 'group_permission_element', 'type' => 'int', 'internal' => 'element'],
'group_permission_component' => ['name' => 'group_permission_component', 'type' => 'int', 'internal' => 'component'], 'group_permission_component' => ['name' => 'group_permission_component', 'type' => 'int', 'internal' => 'component'],
'group_permission_permission' => ['name' => 'group_permission_permission', 'type' => 'int', 'internal' => 'permission'], 'group_permission_hasread' => ['name' => 'group_permission_hasread', 'type' => 'bool', 'internal' => 'hasRead'],
'group_permission_hascreate' => ['name' => 'group_permission_hascreate', 'type' => 'bool', 'internal' => 'hasCreate'],
'group_permission_hasmodify' => ['name' => 'group_permission_hasmodify', 'type' => 'bool', 'internal' => 'hasCreate'],
'group_permission_hasdelete' => ['name' => 'group_permission_hasdelete', 'type' => 'bool', 'internal' => 'hasDelete'],
'group_permission_haspermission' => ['name' => 'group_permission_haspermission', 'type' => 'bool', 'internal' => 'hasPermission'],
]; ];
/** /**