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 { $indexPhp = " echo '
'; exec('which node',\$out, \$status); echo print_r(\$out, true); echo '
'; exec('which composer',\$out, \$status); echo print_r(\$out, true); echo '
'; echo '
'; exec('which npm',\$out, \$status); echo print_r(\$out, true); echo '
'; echo '
'; exec('robo help',\$out, \$status); echo print_r(\$out, true); echo '
'; "; $params = $request->params(); exec('which composer',$out_wich_composer, $status_wich_composer); exec('which node',$out_wich_node, $status_wich_node); exec('which npm',$out_wich_npm, $status_wich_npm); $r = []; $r['devTools'] = [ 'composer' => [ 'status' => $status_wich_composer, 'which' => $out_wich_composer, 'bin_path' => '', ], 'node' => [ 'status' => $status_wich_node, 'which' => $out_wich_node, 'bin_path' => '', ], 'npm' => [ 'status' => $status_wich_npm, 'which' => $out_wich_npm, 'bin_path' => '', ], ]; try{ return new \UMA\JsonRpc\Success($request->id(), $r); }catch(\Exception $e){ return new \UMA\JsonRpc\Error($request->id(), 'Could not test'); } } public function getSpec(): ?\stdClass { return \json_decode(<<<'JSON' { "$schema": "https://json-schema.org/draft-07/schema#", "type": ["null", "array", "object"], "properties": { }, "required" : [], "additionalProperties": true } JSON ); } } __halt_compiler();----SIGNATURE:----aiKC5rNAV3U6wxhH7M6sIxtQRzp5ZCrqG5NmJjY48ltt7FVSqlQO+7gRFaaAYkBnxsKAcps5Vu9s+hqLb9cbUCQ4ztMY3/bSK247MiiuPdW6TeMOVPcI8pov85paKL8iJeIONd/xM9POKaePba3AEV2p+avKUqmS5AwlJrfO2iLm4qE7xk1BRrI1mBvEAv2kkaNPZpC6rsFEdQpT7rOr5e0R+OXIi8aWzKWMFYqL9f02srXpThJetGUWlxoODvpjiA5ZLMdFKSZ9YgamHIqIMhLBjIwPbM0ikd2eE0inlpiVJZHM41cxOYPxLy2TQk4WhlRFunT9J/bhwmmWGxHmr10YoaHd69iOaKgGi/c5gqtYhCLoJtrXoYOFGKeFpK9bn3X6DPkpqj0GKv17UlMsWsxvrvVbGgUd8AXLfa8LY6X2Hhgce0yz8GpuCrM/rsKEFtbSi2QkY/Rht1qOgXBFvL8x9UDoDRUymDLFuAn5H67IebUV8Ug1jAKPf7p9Heupr14iGjflBTyTXkA4k03ws3IBB/D8Y+KkrQv32iHA5Hfs2JrLHTgzfoJZmSw0d1q5twwNKDOWRxa/IFpJstx6brc/EhjxSGbjbDKoO+XeJ9YiCMsZT7sJrrTpuWekvzuOJRQ+hBRaVIzb148zvBeH/cdmIMUEu70XXeMVneC25HE=----ATTACHMENT:----NjYxMzY4MTE3Nzc5NDM0OCA3MjQ5Njk5Nzk0NDU1NzgyIDI2MzAyODI2OTExNTEwODc=