X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FConsole%2FServerBlock.php;h=ada4f2213270fd23c33c50724f9f88a7458e35ae;hb=af97df96bd96e0d0c3c417ee3adfe8e15d25634b;hp=7e45f108bb87309b2fa369067126a8ba473a19e9;hpb=d48b100f789aa629578eac5f962726066494366e;p=friendica.git diff --git a/src/Console/ServerBlock.php b/src/Console/ServerBlock.php index 7e45f108bb..ada4f22132 100644 --- a/src/Console/ServerBlock.php +++ b/src/Console/ServerBlock.php @@ -1,15 +1,33 @@ . + * + */ namespace Friendica\Console; use Asika\SimpleConsole\CommandArgsException; use Asika\SimpleConsole\Console; use Console_Table; -use Friendica\BaseObject; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfig; /** - * @brief Manage blocked servers + * Manage blocked servers * * With this tool, you can list the current blocked servers * or you can add / remove a blocked server from the list @@ -20,18 +38,28 @@ class ServerBlock extends Console protected $helpOptions = ['h', 'help', '?']; + /** + * @var IConfig + */ + private $config; + protected function getHelp() { $help = << [-h|--help|-?] [-v] - bin/console serverblock remove [-h|--help|-?] [-v] + bin/console serverblock add [-h|--help|-?] [-v] + bin/console serverblock remove [-h|--help|-?] [-v] Description - With this tool, you can list the current blocked servers - or you can add / remove a blocked server from the list + With this tool, you can list the current blocked server domain patterns + or you can add / remove a blocked server domain pattern from the list. + + Patterns are case-insensitive shell wildcard comprising the following special characters: + - * : Any number of characters + - ? : Any single character + - [...] : char1 or char2 or... Options -h|--help|-? Show help information @@ -40,20 +68,25 @@ HELP; return $help; } - protected function doExecute() + public function __construct(IConfig $config, $argv = null) { - $a = BaseObject::getApp(); + parent::__construct($argv); + $this->config = $config; + } + + protected function doExecute() + { if (count($this->args) == 0) { - $this->printBlockedServers($a->getConfig()); + $this->printBlockedServers($this->config); return 0; } switch ($this->getArgument(0)) { case 'add': - return $this->addBlockedServer($a->getConfig()); + return $this->addBlockedServer($this->config); case 'remove': - return $this->removeBlockedServer($a->getConfig()); + return $this->removeBlockedServer($this->config); default: throw new CommandArgsException('Unknown command.'); break; @@ -63,13 +96,13 @@ HELP; /** * Prints the whole list of blocked domains including the reason * - * @param Configuration $config + * @param IConfig $config */ - private function printBlockedServers(Configuration $config) + private function printBlockedServers(IConfig $config) { $table = new Console_Table(); $table->setHeaders(['Domain', 'Reason']); - $blocklist = $config->get('system', 'blocklist'); + $blocklist = $config->get('system', 'blocklist', []); foreach ($blocklist as $domain) { $table->addRow($domain); } @@ -79,11 +112,11 @@ HELP; /** * Adds a server to the blocked list * - * @param Configuration $config + * @param IConfig $config * * @return int The return code (0 = success, 1 = failed) */ - private function addBlockedServer(Configuration $config) + private function addBlockedServer(IConfig $config) { if (count($this->args) < 2 || count($this->args) > 3) { throw new CommandArgsException('Add needs a domain and optional a reason.'); @@ -94,7 +127,7 @@ HELP; $update = false; - $currBlocklist = $config->get('system', 'blocklist'); + $currBlocklist = $config->get('system', 'blocklist', []); $newBlockList = []; foreach ($currBlocklist as $blocked) { if ($blocked['domain'] === $domain) { @@ -131,11 +164,11 @@ HELP; /** * Removes a server from the blocked list * - * @param Configuration $config + * @param IConfig $config * * @return int The return code (0 = success, 1 = failed) */ - private function removeBlockedServer(Configuration $config) + private function removeBlockedServer(IConfig $config) { if (count($this->args) !== 2) { throw new CommandArgsException('Remove needs a second parameter.'); @@ -145,7 +178,7 @@ HELP; $found = false; - $currBlocklist = $config->get('system', 'blocklist'); + $currBlocklist = $config->get('system', 'blocklist', []); $newBlockList = []; foreach ($currBlocklist as $blocked) { if ($blocked['domain'] === $domain) {