X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FConsole%2FServerBlock.php;h=9bf2c0eccafe5b4b65f646404574d8d71ff9ef44;hb=4c39faca95e6f8510c9ee9cbf7957855bc718ec7;hp=934226867bb2bf11b17c33c32c78a8f77c806ba5;hpb=b191c8c11cf811db9f88a54d166b89336899320d;p=friendica.git diff --git a/src/Console/ServerBlock.php b/src/Console/ServerBlock.php index 934226867b..9bf2c0ecca 100644 --- a/src/Console/ServerBlock.php +++ b/src/Console/ServerBlock.php @@ -1,6 +1,6 @@ [-h|--help|-?] [-v] - bin/console serverblock remove [-h|--help|-?] [-v] - bin/console serverblock export - bin/console serverblock import + bin/console serverblock [-h|--help|-?] [-v] + bin/console serverblock add [-h|--help|-?] [-v] + bin/console serverblock remove [-h|--help|-?] [-v] + bin/console serverblock export + bin/console serverblock import Description - 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. - Using the export and import options you can share your server blocklist - with other node admins by CSV files. - - Patterns are case-insensitive shell wildcard comprising the following special characters: - - * : Any number of characters - - ? : Any single character - - [...] : char1 or char2 or... + 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. + Using the export and import options you can share your server blocklist + with other node admins by CSV files. + + 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 - -v Show more debug information. + -h|--help|-? Show help information + -v Show more debug information. HELP; return $help; } - public function __construct(IConfig $config, $argv = null) + public function __construct(IManageConfigValues $config, $argv = null) { parent::__construct($argv); @@ -105,13 +105,16 @@ HELP; * Exports the list of blocked domains including the reason for the * block to a CSV file. * - * @param IConfig $config + * @param IManageConfigValues $config */ - private function exportBlockedServers(IConfig $config) + private function exportBlockedServers(IManageConfigValues $config) { $filename = $this->getArgument(1); $blocklist = $config->get('system', 'blocklist', []); $fp = fopen($filename, 'w'); + if (!$fp) { + throw new Exception(sprintf('The file "%s" could not be created.', $filename)); + } foreach ($blocklist as $domain) { fputcsv($fp, $domain); } @@ -120,17 +123,17 @@ HELP; * Imports a list of domains and a reason for the block from a CSV * file, e.g. created with the export function. * - * @param IConfig $config + * @param IManageConfigValues $config */ - private function importBlockedServers(IConfig $config) + private function importBlockedServers(IManageConfigValues $config) { $filename = $this->getArgument(1); $currBlockList = $config->get('system', 'blocklist', []); $newBlockList = []; - if (($fp = fopen($filename, 'r')) !== FALSE) { - while (($data = fgetcsv($fp, 1000, ',')) !== FALSE) { + if (($fp = fopen($filename, 'r')) !== false) { + while (($data = fgetcsv($fp, 1000, ',')) !== false) { $domain = $data[0]; - if (count($data) == 0) { + if (count($data) == 0) { $reason = self::DEFAULT_REASON; } else { $reason = $data[1]; @@ -139,12 +142,14 @@ HELP; 'domain' => $domain, 'reason' => $reason ]; - if (!in_array($data, $newBlockList)) + if (!in_array($data, $newBlockList)) { $newBlockList[] = $data; + } } foreach ($currBlockList as $blocked) { - if (!in_array($blocked, $newBlockList)) + if (!in_array($blocked, $newBlockList)) { $newBlockList[] = $blocked; + } } if ($config->set('system', 'blocklist', $newBlockList)) { $this->out(sprintf("Entries from %s that were not blocked before are now blocked", $filename)); @@ -154,15 +159,17 @@ HELP; return 1; } + } else { + throw new Exception(sprintf('The file "%s" could not be opened for importing', $filename)); } } /** * Prints the whole list of blocked domains including the reason * - /* @param IConfig $config + * @param IManageConfigValues $config */ - private function printBlockedServers(IConfig $config) + private function printBlockedServers(IManageConfigValues $config) { $table = new Console_Table(); $table->setHeaders(['Domain', 'Reason']); @@ -176,11 +183,11 @@ HELP; /** * Adds a server to the blocked list * - * @param IConfig $config + * @param IManageConfigValues $config * * @return int The return code (0 = success, 1 = failed) */ - private function addBlockedServer(IConfig $config) + private function addBlockedServer(IManageConfigValues $config) { if (count($this->args) < 2 || count($this->args) > 3) { throw new CommandArgsException('Add needs a domain and optional a reason.'); @@ -228,11 +235,11 @@ HELP; /** * Removes a server from the blocked list * - * @param IConfig $config + * @param IManageConfigValues $config * * @return int The return code (0 = success, 1 = failed) */ - private function removeBlockedServer(IConfig $config) + private function removeBlockedServer(IManageConfigValues $config) { if (count($this->args) !== 2) { throw new CommandArgsException('Remove needs a second parameter.');