X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FConsole%2FGlobalCommunityBlock.php;h=6eb17034897097f33dd375179737c82e3175362d;hb=4e674d98eb1396f252988e3bde827e850b8a9239;hp=bc067dada61d3dc6db48c41d880d269453801ac2;hpb=d716a3326f4e7846e19ec2454054f6d20a71507a;p=friendica.git diff --git a/src/Console/GlobalCommunityBlock.php b/src/Console/GlobalCommunityBlock.php index bc067dada6..6eb1703489 100644 --- a/src/Console/GlobalCommunityBlock.php +++ b/src/Console/GlobalCommunityBlock.php @@ -1,34 +1,59 @@ . + * + */ namespace Friendica\Console; +use Friendica\App; use Friendica\Core\L10n; use Friendica\Model\Contact; /** - * @brief tool to block an account from the node + * tool to block an account from the node * * With this tool, you can block an account in such a way, that no postings * or comments this account writes are accepted to the node. - * - * License: AGPLv3 or later, same as Friendica - * - * @author Tobias Diekershoff - * @author Hypolite Petovan */ class GlobalCommunityBlock extends \Asika\SimpleConsole\Console { protected $helpOptions = ['h', 'help', '?']; + /** + * @var App\Mode + */ + private $appMode; + /** + * @var \Friendica\Core\L10n + */ + private $l10n; + protected function getHelp() { $help = << [-h|--help|-?] [-v] + bin/console globalcommunityblock [] [-h|--help|-?] [-v] Description Blocks an account in such a way that no postings or comments this account writes are accepted to this node. + You can provide a optional reason for the block. Options -h|--help|-? Show help information @@ -37,10 +62,16 @@ HELP; return $help; } - protected function doExecute() + public function __construct(App\Mode $appMode, L10n $l10n, $argv = null) { - $a = \get_app(); + parent::__construct($argv); + $this->appMode = $appMode; + $this->l10n = $l10n; + } + + protected function doExecute(): int + { if ($this->getOption('v')) { $this->out('Class: ' . __CLASS__); $this->out('Arguments: ' . var_export($this->args, true)); @@ -52,20 +83,22 @@ HELP; return 0; } - if (count($this->args) > 1) { + if (count($this->args) > 2) { throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments'); } - if ($a->getMode()->isInstall()) { + if ($this->appMode->isInstall()) { throw new \RuntimeException('Database isn\'t ready or populated yet'); } $contact_id = Contact::getIdForURL($this->getArgument(0)); if (!$contact_id) { - throw new \RuntimeException(L10n::t('Could not find any contact entry for this URL (%s)', $this->getArgument(0))); + throw new \RuntimeException($this->l10n->t('Could not find any contact entry for this URL (%s)', $this->getArgument(0))); } - if(Contact::block($contact_id)) { - $this->out(L10n::t('The contact has been blocked from the node')); + + $block_reason = $this->getArgument(1); + if(Contact::block($contact_id, $block_reason)) { + $this->out($this->l10n->t('The contact has been blocked from the node')); } else { throw new \RuntimeException('The contact block failed.'); }