Файловый менеджер - Редактировать - /var/www/html/mediawiki-1.43.1/extensions/AbuseFilter/includes/Consequences/Consequence/Block.php
Ðазад
<?php namespace MediaWiki\Extension\AbuseFilter\Consequences\Consequence; use ManualLogEntry; use MediaWiki\Block\BlockUserFactory; use MediaWiki\Block\DatabaseBlockStore; use MediaWiki\Extension\AbuseFilter\Consequences\Parameters; use MediaWiki\Extension\AbuseFilter\FilterUser; use MediaWiki\Extension\AbuseFilter\GlobalNameUtils; use MediaWiki\Title\TitleValue; use MediaWiki\User\UserIdentity; use MessageLocalizer; use Psr\Log\LoggerInterface; /** * Consequence that blocks a single user. */ class Block extends BlockingConsequence implements ReversibleConsequence { private bool $preventsTalkEdit; private DatabaseBlockStore $databaseBlockStore; /** * @param Parameters $params * @param string $expiry * @param bool $preventTalkEdit * @param BlockUserFactory $blockUserFactory * @param DatabaseBlockStore $databaseBlockStore * @param FilterUser $filterUser * @param MessageLocalizer $messageLocalizer * @param LoggerInterface $logger */ public function __construct( Parameters $params, string $expiry, bool $preventTalkEdit, BlockUserFactory $blockUserFactory, DatabaseBlockStore $databaseBlockStore, FilterUser $filterUser, MessageLocalizer $messageLocalizer, LoggerInterface $logger ) { parent::__construct( $params, $expiry, $blockUserFactory, $filterUser, $messageLocalizer, $logger ); $this->databaseBlockStore = $databaseBlockStore; $this->preventsTalkEdit = $preventTalkEdit; } /** * @inheritDoc */ public function execute(): bool { $status = $this->doBlockInternal( $this->parameters->getFilter()->getName(), $this->parameters->getFilter()->getID(), $this->parameters->getUser()->getName(), $this->expiry, $autoblock = true, $this->preventsTalkEdit ); // TODO: Should we reblock in case of partial blocks? At that point we could return // the status of doBlockInternal return defined( 'MW_PHPUNIT_TEST' ) ? $status->isOK() : true; } /** * @inheritDoc * @todo This could use UnblockUser, but we need to check if the block was performed by the AF user */ public function revert( UserIdentity $performer, string $reason ): bool { $block = $this->databaseBlockStore->newFromTarget( $this->parameters->getUser()->getName() ); if ( !( $block && $block->getBy() === $this->filterUser->getUserIdentity()->getId() ) ) { // Not blocked by abuse filter return false; } if ( !$this->databaseBlockStore->deleteBlock( $block ) ) { return false; } $logEntry = new ManualLogEntry( 'block', 'unblock' ); $logEntry->setTarget( new TitleValue( NS_USER, $this->parameters->getUser()->getName() ) ); $logEntry->setComment( $reason ); $logEntry->setPerformer( $performer ); if ( !defined( 'MW_PHPUNIT_TEST' ) ) { // This has a bazillion of static dependencies all around the place, and a nightmare to deal with in tests // TODO: Remove this check once T253717 is resolved // @codeCoverageIgnoreStart $logEntry->publish( $logEntry->insert() ); // @codeCoverageIgnoreEnd } return true; } /** * @inheritDoc */ public function getMessage(): array { $filter = $this->parameters->getFilter(); return [ 'abusefilter-blocked-display', $filter->getName(), GlobalNameUtils::buildGlobalName( $filter->getID(), $this->parameters->getIsGlobalFilter() ) ]; } /** * @return string * @internal */ public function getExpiry(): string { return $this->expiry; } }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка