[WIP] Blacklist command #14

Draft
CptainObvious wants to merge 1 commits from CptainObvious/occweb:master into master
2 changed files with 20 additions and 5 deletions
Showing only changes of commit 06f4271b50 - Show all commits

View File

@ -28,7 +28,11 @@
}).done(function (response) { }).done(function (response) {
term.echo('\n' + response).resume(); term.echo('\n' + response).resume();
}).fail(function (response, code) { }).fail(function (response, code) {
term.echo('\n' + response).resume(); if (response.status === 403) {
term.echo(response.responseJSON.error).resume();
} else {
term.echo('\n[[;red;]Error]\n' + response).resume();
}
}); });
} }
}, { }, {

View File

@ -21,13 +21,13 @@ class OccController extends Controller
private $application; private $application;
private $output; private $output;
private $blacklist;
public function __construct(ILogger $logger, $AppName, IRequest $request, $userId) public function __construct(ILogger $logger, $AppName, IRequest $request, $userId)
{ {
parent::__construct($AppName, $request); parent::__construct($AppName, $request);
$this->logger = $logger; $this->logger = $logger;
$this->userId = $userId; $this->userId = $userId;
$this->blacklist = array("maintenance:mode on");
$this->application = new Application( $this->application = new Application(
OC::$server->getConfig(), OC::$server->getConfig(),
OC::$server->getEventDispatcher(), OC::$server->getEventDispatcher(),
@ -58,8 +58,9 @@ class OccController extends Controller
$this->application->run($input, $this->output); $this->application->run($input, $this->output);
return $this->output->fetch(); return $this->output->fetch();
} catch (Exception $ex) { } catch (Exception $ex) {
$this->logger->logException($ex); exceptionHandler($ex);
return "error: " . $ex->getMessage(); } catch (Error $ex) {
exceptionHandler($ex);
} }
} }
@ -70,6 +71,10 @@ class OccController extends Controller
public function cmd($command) public function cmd($command)
{ {
$this->logger->debug($command); $this->logger->debug($command);
if (in_array($command, $this->blacklist)) {
$this->logger->debug("Command blacklist");
return new DataResponse(array("error" => "\n".'\u001b[37;41m \u001b[39;49m'."\n".'\u001b[37;41m Command blacklisted. \u001b[39;49m'."\n".'\u001b[37;41m \u001b[39;49m'."\n\n"), 403);
}
$input = new StringInput($command); $input = new StringInput($command);
$response = $this->run($input); $response = $this->run($input);
$this->logger->debug($response); $this->logger->debug($response);
@ -86,3 +91,9 @@ class OccController extends Controller
} }
} }
function exceptionHandler($exception)
{
echo "An unhandled exception has been thrown:" . PHP_EOL;
echo $exception;
exit(1);
}