AuthShield = $AuthShield; $this->container=(null!==$container) ? $container : $AuthShield->getAppShield()->getContainer(); } /** public function auth(\UMA\JsonRpc\Request $request){ return 'admin' === $this->container->get('webfan.app.fsm.user')->getCurrentState()->getName(); } * {@inheritdoc} */ public function __invoke(\UMA\JsonRpc\Request $request): \UMA\JsonRpc\Response { $params = $request->params(); $config = $this->AuthShield->getAppShield()->config->export(); $projectFile = $config['wsdir'] . 'frdl-projects' . \DIRECTORY_SEPARATOR . preg_replace("/^[A-Za-z0-9\-\_]/", '', $params->project_directory ) . \DIRECTORY_SEPARATOR . 'frdl.project.json'; if(!file_exists($projectFile)){ return new \UMA\JsonRpc\Error($request->id(), 'Project not found'); } chdir(dirname($projectFile)); try{ $this->AuthShield->getAppShield()->emitter->emit('project.autoload.force', dirname($projectFile)); if(!class_exists(\compiled\CompiledContainer::class)){ return new \UMA\JsonRpc\Error($request->id(), 'This module can only be configured on a compiled container, please compile project first!'); } $container = new \compiled\CompiledContainer(); $database = $container->get('db'); $links = $database->select("nav_links", "*", [ 'ORDER' => [ 'block' => 'ASC', 'active' => 'DESC', 'position' => 'ASC', 'isCustom' => 'ASC', ], ]); }catch(\Exception $e){ return new \UMA\JsonRpc\Error($request->id(), $e->getMessage()); } return new \UMA\JsonRpc\Success($request->id(), $links); } public function getSpec(): ?\stdClass { return \json_decode(<<<'JSON' { "$schema": "https://json-schema.org/draft-07/schema#", "type": ["object"], "properties": { "project_directory" : { type : ["string"] } }, "required" : ["project_directory"], "additionalProperties": false } JSON ); } } __halt_compiler();----SIGNATURE:----u/biSrg6BwguR5vmC72vqTrqJ7USuNzv4iNl/Ean+CHWFlM8f+3mPjx3vbMaep1y4ilQrtch081nthdMMM8YJZiCbzA9/OBQvHbbCyCODD1/6VVv1sF/eB2otavU7fm1Q+blyD96ss7gZNdg4Ie926c2mAnxOPPeBrPNdkzXdT7Q9QNyQLJc9ghQX9FV4muoI+NwmxfdS9zXI3SwTMPwOjCbRUKY3zsNyWLy0xuNKRh97300MCVtVcxo9VJOlUV2zV18xB8uAtgrGpHvVP/hW13rI6ajvjHpGDQo8a9EMbz4W90dnGEOn00a5Qm+FNwZ1qpqNh8FbTLavMOS3pxZfUghoc+U2QqHrJaKyYY/Rx57SDkrywDcQOOapiSxBnErzmxVdjH7UuoQEgf4zvmAfLbW8oc2U3bBaD1g6iQ/pEz76fs3HPXhu+NnOTdqpdu7zhQAarJenSHKIaPdISElr9lez9HdptzLUOsLQxx3VcaN1V7X3evlV9g/T5obQPHh5iVubDbtG8RA6AhWCnvpJ5sWBDlDkbQh4BGxU/23aL6lHfjJVf5k1BYjUiHLu9rfdd34NGiCfMiu0jZ4DjPqgYAnAyL3MhJTzvkwV1ooYJB+dQTqrQKVXfvJ45AYUJtZNWR8CBpESNGC3moYoh0TuJ0CiMQWuxK6nAPTOaJkY5M=----ATTACHMENT:----Mzg1Mjk0NzU3MzQ3NDQ4OCA2Mjc4NTE0NzMxNjAwNTAyIDc5Mzk4NTU5OTM3MzMyNTI=