MediaWiki REL1_37
MediaWiki\Block\BlockUser Class Reference

Handles the backend logic of blocking users. More...

Collaboration diagram for MediaWiki\Block\BlockUser:

Public Member Functions

 __construct (ServiceOptions $options, BlockRestrictionStore $blockRestrictionStore, BlockPermissionCheckerFactory $blockPermissionCheckerFactory, BlockUtils $blockUtils, BlockActionInfo $blockActionInfo, HookContainer $hookContainer, DatabaseBlockStore $databaseBlockStore, UserFactory $userFactory, UserEditTracker $userEditTracker, LoggerInterface $logger, TitleFactory $titleFactory, $target, Authority $performer, string $expiry, string $reason, array $blockOptions, array $blockRestrictions, array $tags)
 
 placeBlock (bool $reblock=false)
 Places a block with checking permissions.
 
 placeBlockUnsafe (bool $reblock=false)
 Places a block without any sort of permissions checks.
 
 setLogDeletionFlags (int $flags)
 

Static Public Member Functions

static parseExpiryInput (string $expiry)
 Convert a submitted expiry time, which may be relative ("2 weeks", etc) or absolute ("24 May 2034", etc), into an absolute timestamp we can put into the database.
 

Public Attributes

const CONSTRUCTOR_OPTIONS
 

Private Member Functions

 blockLogFlags ()
 Return a comma-delimited list of flags to be passed to the log reader for this block, to provide more information in the logs.
 
 configureBlock ( $sourceBlock=null)
 Configure DatabaseBlock according to class properties.
 
 constructLogParams ()
 Prepare $logParams.
 
 getActionRestrictions ()
 Build an array of actions from $this->blockRestrictions.
 
 getNamespaceRestrictions ()
 Build namespace restrictions array from $this->blockRestrictions.
 
 getPageRestrictions ()
 Build an array of page restrictions from $this->blockRestrictions.
 
 isPartial ()
 Is the to-be-placed block partial?
 
 log (DatabaseBlock $block, bool $isReblock)
 Log the block to Special:Log.
 
 placeBlockInternal (bool $reblock=true)
 Places a block without any sort of sanity/permission checks, hooks can still abort the block through, as well as already existing block.
 

Private Attributes

BlockActionInfo $blockActionInfo
 
BlockPermissionChecker $blockPermissionChecker
 
AbstractRestriction[] $blockRestrictions = []
 
BlockRestrictionStore $blockRestrictionStore
 
BlockUtils $blockUtils
 
DatabaseBlockStore $databaseBlockStore
 
string bool $expiryTime
 Parsed expiry.
 
HookRunner $hookRunner
 
bool $isAutoblocking = true
 
bool $isCreateAccountBlocked = false
 
bool $isEmailBlocked = false
 
bool $isHardBlock = true
 
bool $isHideUser = false
 
bool $isPartialRaw = false
 Flag that needs to be true when the to-be-created block allows all editing, but does not allow some other action.
 
bool null $isUserTalkEditBlocked = null
 This may be null when an invalid option was passed to the constructor.
 
int null $logDeletionFlags
 
LoggerInterface $logger
 
ServiceOptions $options
 
Authority $performer
 Performer of the block.
 
string $rawExpiry
 Expiry of the to-be-placed block exactly as it was passed to the constructor.
 
string $reason
 
string[] $tags = []
 
UserIdentity string null $target
 Target of the block.
 
int $targetType
 One of AbstractBlock::TYPE_* constants.
 
TitleFactory $titleFactory
 
UserEditTracker $userEditTracker
 
UserFactory $userFactory
 

Detailed Description

Handles the backend logic of blocking users.

Since
1.36

Definition at line 51 of file BlockUser.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Block\BlockUser::__construct ( ServiceOptions  $options,
BlockRestrictionStore  $blockRestrictionStore,
BlockPermissionCheckerFactory  $blockPermissionCheckerFactory,
BlockUtils  $blockUtils,
BlockActionInfo  $blockActionInfo,
HookContainer  $hookContainer,
DatabaseBlockStore  $databaseBlockStore,
UserFactory  $userFactory,
UserEditTracker  $userEditTracker,
LoggerInterface  $logger,
TitleFactory  $titleFactory,
  $target,
Authority  $performer,
string  $expiry,
string  $reason,
array  $blockOptions,
array  $blockRestrictions,
array  $tags 
)
Parameters
ServiceOptions$options
BlockRestrictionStore$blockRestrictionStore
BlockPermissionCheckerFactory$blockPermissionCheckerFactory
BlockUtils$blockUtils
BlockActionInfo$blockActionInfo
HookContainer$hookContainer
DatabaseBlockStore$databaseBlockStore
UserFactory$userFactory
UserEditTracker$userEditTracker
LoggerInterface$logger
TitleFactory$titleFactory
string | UserIdentity$targetTarget of the block
Authority$performerPerformer of the block
string$expiryExpiry of the block (timestamp or 'infinity')
string$reasonReason of the block
bool[]$blockOptionsBlock options Valid options:
  • isCreateAccountBlocked : Are acount creations prevented?
  • isEmailBlocked : Is emailing other users prevented?
  • isHardBlock : Are registered users prevented from editing?
  • isAutoblocking : Should this block spread to others to limit block evasion?
  • isUserTalkEditBlocked : Is editing blocked user's own talkpage allowed?
  • isHideUser : Should blocked user's name be hiden (needs hideuser)?
  • isPartial : Is this block partial? This is ignored when blockRestrictions is not an empty array.
array$blockRestrictionsBlock restrictions
string[]$tagsTags that should be assigned to the log entry

Definition at line 206 of file BlockUser.php.

References MediaWiki\Block\BlockUser\$blockActionInfo, MediaWiki\Block\BlockUser\$blockRestrictions, MediaWiki\Block\BlockUser\$blockRestrictionStore, MediaWiki\Block\BlockUser\$blockUtils, MediaWiki\Block\BlockUser\$databaseBlockStore, MediaWiki\Block\BlockUser\$logger, MediaWiki\Block\BlockUser\$options, MediaWiki\Block\BlockUser\$performer, MediaWiki\Block\BlockUser\$reason, MediaWiki\Block\BlockUser\$tags, MediaWiki\Block\BlockUser\$target, MediaWiki\Block\BlockUser\$titleFactory, MediaWiki\Block\BlockUser\$userEditTracker, MediaWiki\Block\BlockUser\$userFactory, MediaWiki\Config\ServiceOptions\assertRequiredOptions(), MediaWiki\Block\BlockUser\getNamespaceRestrictions(), MediaWiki\Block\BlockUser\isPartial(), MediaWiki\Block\BlockPermissionCheckerFactory\newBlockPermissionChecker(), NS_USER_TALK, MediaWiki\Block\BlockUser\parseExpiryInput(), and MediaWiki\Block\Block\TYPE_USER.

Member Function Documentation

◆ blockLogFlags()

MediaWiki\Block\BlockUser::blockLogFlags ( )
private

Return a comma-delimited list of flags to be passed to the log reader for this block, to provide more information in the logs.

Returns
string

Definition at line 728 of file BlockUser.php.

◆ configureBlock()

MediaWiki\Block\BlockUser::configureBlock (   $sourceBlock = null)
private

Configure DatabaseBlock according to class properties.

Parameters
DatabaseBlock | null$sourceBlockCopy any options from this block, null to construct a new one.
Returns
DatabaseBlock

Definition at line 367 of file BlockUser.php.

◆ constructLogParams()

MediaWiki\Block\BlockUser::constructLogParams ( )
private

Prepare $logParams.

Helper method for $this->log()

Returns
array

Definition at line 671 of file BlockUser.php.

◆ getActionRestrictions()

MediaWiki\Block\BlockUser::getActionRestrictions ( )
private

Build an array of actions from $this->blockRestrictions.

Returns an array of stringified actions.

Returns
string[]

Definition at line 654 of file BlockUser.php.

◆ getNamespaceRestrictions()

MediaWiki\Block\BlockUser::getNamespaceRestrictions ( )
private

Build namespace restrictions array from $this->blockRestrictions.

Returns an array of namespace IDs.

Returns
int[]

Definition at line 620 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ getPageRestrictions()

MediaWiki\Block\BlockUser::getPageRestrictions ( )
private

Build an array of page restrictions from $this->blockRestrictions.

Returns an array of stringified full page titles.

Returns
string[]

Definition at line 637 of file BlockUser.php.

◆ isPartial()

MediaWiki\Block\BlockUser::isPartial ( )
private

Is the to-be-placed block partial?

Returns
bool

Definition at line 355 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ log()

MediaWiki\Block\BlockUser::log ( DatabaseBlock  $block,
bool  $isReblock 
)
private

Log the block to Special:Log.

Parameters
DatabaseBlock$block
bool$isReblock

Definition at line 703 of file BlockUser.php.

References MediaWiki\Block\DatabaseBlock\getId(), and NS_USER.

◆ parseExpiryInput()

static MediaWiki\Block\BlockUser::parseExpiryInput ( string  $expiry)
static

Convert a submitted expiry time, which may be relative ("2 weeks", etc) or absolute ("24 May 2034", etc), into an absolute timestamp we can put into the database.

Todo:
strtotime() only accepts English strings. This means the expiry input can only be specified in English.
See also
https://www.php.net/manual/en/function.strtotime.php
Parameters
string$expiryWhatever was typed into the form
Returns
string|false Timestamp (format TS_MW) or 'infinity' or false on error.

Definition at line 335 of file BlockUser.php.

References wfIsInfinity(), and wfTimestamp().

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ placeBlock()

MediaWiki\Block\BlockUser::placeBlock ( bool  $reblock = false)

Places a block with checking permissions.

Parameters
bool$reblockShould this reblock?
Returns
Status If the block is successful, the value of the returned Status is an instance of a newly placed block.

Definition at line 412 of file BlockUser.php.

◆ placeBlockInternal()

MediaWiki\Block\BlockUser::placeBlockInternal ( bool  $reblock = true)
private

Places a block without any sort of sanity/permission checks, hooks can still abort the block through, as well as already existing block.

Parameters
bool$reblockShould this reblock?
Returns
Status

Definition at line 541 of file BlockUser.php.

◆ placeBlockUnsafe()

MediaWiki\Block\BlockUser::placeBlockUnsafe ( bool  $reblock = false)

Places a block without any sort of permissions checks.

Parameters
bool$reblockShould this reblock?
Returns
Status If the block is successful, the value of the returned Status is an instance of a newly placed block.

Definition at line 475 of file BlockUser.php.

◆ setLogDeletionFlags()

MediaWiki\Block\BlockUser::setLogDeletionFlags ( int  $flags)
Stability: unstable
This method might be removed without prior notice (see T271101)
Parameters
int$flagsOne of LogPage::* constants

Definition at line 319 of file BlockUser.php.

Member Data Documentation

◆ $blockActionInfo

BlockActionInfo MediaWiki\Block\BlockUser::$blockActionInfo
private

Definition at line 105 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $blockPermissionChecker

BlockPermissionChecker MediaWiki\Block\BlockUser::$blockPermissionChecker
private

Definition at line 81 of file BlockUser.php.

◆ $blockRestrictions

AbstractRestriction [] MediaWiki\Block\BlockUser::$blockRestrictions = []
private

Definition at line 168 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $blockRestrictionStore

BlockRestrictionStore MediaWiki\Block\BlockUser::$blockRestrictionStore
private

Definition at line 78 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $blockUtils

BlockUtils MediaWiki\Block\BlockUser::$blockUtils
private

Definition at line 84 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $databaseBlockStore

DatabaseBlockStore MediaWiki\Block\BlockUser::$databaseBlockStore
private

Definition at line 90 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $expiryTime

string bool MediaWiki\Block\BlockUser::$expiryTime
private

Parsed expiry.

This may be false in case of an error in parsing.

Definition at line 127 of file BlockUser.php.

◆ $hookRunner

HookRunner MediaWiki\Block\BlockUser::$hookRunner
private

Definition at line 87 of file BlockUser.php.

◆ $isAutoblocking

bool MediaWiki\Block\BlockUser::$isAutoblocking = true
private

Definition at line 150 of file BlockUser.php.

◆ $isCreateAccountBlocked

bool MediaWiki\Block\BlockUser::$isCreateAccountBlocked = false
private

Definition at line 133 of file BlockUser.php.

◆ $isEmailBlocked

bool MediaWiki\Block\BlockUser::$isEmailBlocked = false
private

Definition at line 144 of file BlockUser.php.

◆ $isHardBlock

bool MediaWiki\Block\BlockUser::$isHardBlock = true
private

Definition at line 147 of file BlockUser.php.

◆ $isHideUser

bool MediaWiki\Block\BlockUser::$isHideUser = false
private

Definition at line 153 of file BlockUser.php.

◆ $isPartialRaw

bool MediaWiki\Block\BlockUser::$isPartialRaw = false
private

Flag that needs to be true when the to-be-created block allows all editing, but does not allow some other action.

This flag is used only by isPartial(), and should not be used anywhere else, even within this class. If you want to determine whether the block will be partial, use $this->isPartial().

Definition at line 165 of file BlockUser.php.

◆ $isUserTalkEditBlocked

bool null MediaWiki\Block\BlockUser::$isUserTalkEditBlocked = null
private

This may be null when an invalid option was passed to the constructor.

Such a case is catched in placeBlockUnsafe.

Definition at line 141 of file BlockUser.php.

◆ $logDeletionFlags

int null MediaWiki\Block\BlockUser::$logDeletionFlags
private

Definition at line 174 of file BlockUser.php.

◆ $logger

LoggerInterface MediaWiki\Block\BlockUser::$logger
private

Definition at line 99 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $options

ServiceOptions MediaWiki\Block\BlockUser::$options
private

Definition at line 75 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $performer

Authority MediaWiki\Block\BlockUser::$performer
private

Performer of the block.

Definition at line 72 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $rawExpiry

string MediaWiki\Block\BlockUser::$rawExpiry
private

Expiry of the to-be-placed block exactly as it was passed to the constructor.

Definition at line 120 of file BlockUser.php.

◆ $reason

string MediaWiki\Block\BlockUser::$reason
private

Definition at line 130 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $tags

string [] MediaWiki\Block\BlockUser::$tags = []
private

Definition at line 171 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $target

UserIdentity string null MediaWiki\Block\BlockUser::$target
private

Target of the block.

This is null in case BlockUtils::parseBlockTarget failed to parse the target. Such case is detected in placeBlockUnsafe, by calling validateTarget from SpecialBlock.

Definition at line 60 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $targetType

int MediaWiki\Block\BlockUser::$targetType
private

One of AbstractBlock::TYPE_* constants.

This will be -1 if BlockUtils::parseBlockTarget failed to parse the target.

Definition at line 69 of file BlockUser.php.

◆ $titleFactory

TitleFactory MediaWiki\Block\BlockUser::$titleFactory
private

Definition at line 102 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $userEditTracker

UserEditTracker MediaWiki\Block\BlockUser::$userEditTracker
private

Definition at line 96 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ $userFactory

UserFactory MediaWiki\Block\BlockUser::$userFactory
private

Definition at line 93 of file BlockUser.php.

Referenced by MediaWiki\Block\BlockUser\__construct().

◆ CONSTRUCTOR_OPTIONS

const MediaWiki\Block\BlockUser::CONSTRUCTOR_OPTIONS
Initial value:
= [
'HideUserContribLimit',
'BlockAllowsUTEdit',
]
Access: internal
For use by UserBlockCommandFactory

Definition at line 110 of file BlockUser.php.


The documentation for this class was generated from the following file: