MediaWiki  master
MediaWiki\Block\AbstractBlock Class Reference
Inheritance diagram for MediaWiki\Block\AbstractBlock:
Collaboration diagram for MediaWiki\Block\AbstractBlock:

Public Member Functions

 __construct (array $options=[])
 Create a new block with specified parameters on a user, IP or IP range. More...
 
 appliesToNamespace ( $ns)
 Checks if a block applies to a particular namespace. More...
 
 appliesToPage ( $pageId)
 Checks if a block applies to a particular page. More...
 
 appliesToPasswordReset ()
 Check if the block prevents a user from resetting their password. More...
 
 appliesToRight ( $right)
 Determine whether the block prevents a given right. More...
 
 appliesToTitle (Title $title)
 Checks if a block applies to a particular title. More...
 
 appliesToUsertalk (Title $usertalk=null)
 Determine whether the block allows the user to edit their own user talk page. More...
 
 getBlocker ()
 Get the user who implemented this block. More...
 
 getBlockErrorParams (IContextSource $context)
 Get block information used in different block error messages. More...
 
 getBy ()
 Get the user id of the blocking sysop. More...
 
 getByName ()
 Get the username of the blocking sysop. More...
 
 getExpiry ()
 Get the block expiry time. More...
 
 getHideName ()
 Get whether the block hides the target's username. More...
 
 getId ()
 Get the block ID. More...
 
 getIdentifier ()
 Get the information that identifies this block, such that a user could look up everything that can be found about this block. More...
 
 getPermissionsError (IContextSource $context)
 Get the key and parameters for the corresponding error message. More...
 
 getReason ()
 Get the reason given for creating the block. More...
 
 getTarget ()
 Get the target for this particular block. More...
 
 getTargetAndType ()
 Get the target and target type for this particular block. More...
 
 getTimestamp ()
 Get the timestamp indicating when the block was created. More...
 
 getType ()
 Get the type of target for this particular block. More...
 
 isCreateAccountBlocked ( $x=null)
 Get or set the flag indicating whether this block blocks the target from creating an account. More...
 
 isEmailBlocked ( $x=null)
 Get or set the flag indicating whether this block blocks the target from sending emails. More...
 
 isSitewide ( $x=null)
 Indicates that the block is a sitewide block. More...
 
 isUsertalkEditAllowed ( $x=null)
 Get or set the flag indicating whether this block blocks the target from editing their own user talk page. More...
 
 prevents ( $action, $x=null)
 Get/set whether the block prevents a given action. More...
 
 setBlocker ( $user)
 Set the user who implemented (or will implement) this block. More...
 
 setExpiry ( $expiry)
 Set the block expiry time. More...
 
 setHideName ( $hideName)
 Set whether ths block hides the target's username. More...
 
 setReason ( $reason)
 Set the reason for creating the block. More...
 
 setTarget ( $target)
 Set the target for this block, and update $this->type accordingly. More...
 
 setTimestamp ( $timestamp)
 Set the timestamp indicating when the block was created. More...
 
 shouldTrackWithCookie ( $isAnon)
 Check if the block should be tracked with a cookie. More...
 

Static Public Member Functions

static parseTarget ( $target)
 From an existing block, get the target and the type of target. More...
 

Public Attributes

string $mExpiry = ''
 
bool $mHideName = false
 
string $mReason
 
string $mTimestamp
 
const TYPE_AUTO = 4
 
const TYPE_ID = 5
 
const TYPE_IP = 2
 
const TYPE_RANGE = 3
 
const TYPE_USER = 1
 

Protected Attributes

bool $allowUsertalk = false
 
bool $blockCreateAccount = false
 
User $blocker
 
bool $isSitewide = true
 
bool $mBlockEmail = false
 
User string null $target
 
int null $type
 AbstractBlock::TYPE_ constant. More...
 

Detailed Description

Since
1.34 Factored out from DatabaseBlock (previously Block).

Definition at line 34 of file AbstractBlock.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Block\AbstractBlock::__construct ( array  $options = [])

Create a new block with specified parameters on a user, IP or IP range.

Parameters
array$optionsParameters of the block, with supported options:
  • address: (string|User) Target user name, User object, IP address or IP range
  • by: (int) User ID of the blocker
  • reason: (string) Reason of the block
  • timestamp: (string) The time at which the block comes into effect
  • byText: (string) Username of the blocker (for foreign users)
  • hideName: (bool) Hide the target user name

Definition at line 101 of file AbstractBlock.php.

References User\newFromId(), MediaWiki\Block\AbstractBlock\setBlocker(), MediaWiki\Block\AbstractBlock\setHideName(), MediaWiki\Block\AbstractBlock\setReason(), MediaWiki\Block\AbstractBlock\setTarget(), MediaWiki\Block\AbstractBlock\setTimestamp(), and wfTimestamp().

Member Function Documentation

◆ appliesToNamespace()

MediaWiki\Block\AbstractBlock::appliesToNamespace (   $ns)

Checks if a block applies to a particular namespace.

Since
1.33
Parameters
int$ns
Returns
bool

Definition at line 656 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\isSitewide().

Referenced by MediaWiki\Block\AbstractBlock\appliesToUsertalk().

◆ appliesToPage()

MediaWiki\Block\AbstractBlock::appliesToPage (   $pageId)

Checks if a block applies to a particular page.

This check does not consider whether $this->isUsertalkEditAllowed returns false, as the identity of the user making the hypothetical edit isn't known here (particularly in the case of IP hardblocks, range blocks, and auto-blocks).

Since
1.33
Parameters
int$pageId
Returns
bool

Definition at line 673 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\isSitewide().

Referenced by MediaWiki\Block\AbstractBlock\appliesToUsertalk().

◆ appliesToPasswordReset()

MediaWiki\Block\AbstractBlock::appliesToPasswordReset ( )

Check if the block prevents a user from resetting their password.

Since
1.33
Returns
bool The block blocks password reset

Definition at line 697 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\isCreateAccountBlocked().

◆ appliesToRight()

MediaWiki\Block\AbstractBlock::appliesToRight (   $right)

Determine whether the block prevents a given right.

A right may be blacklisted or whitelisted, or determined from a property on the block object. For certain rights, the property may be overridden according to global configs.

Since
1.33
Parameters
string$right
Returns
bool|null The block applies to the right, or null if unsure (e.g. unrecognized right or unset property)

Definition at line 266 of file AbstractBlock.php.

References MediaWiki\$config, $res, Config\get(), MediaWiki\MediaWikiServices\getInstance(), RequestContext\getMain(), MediaWiki\Block\AbstractBlock\isCreateAccountBlocked(), MediaWiki\Block\AbstractBlock\isEmailBlocked(), and MediaWiki\Block\AbstractBlock\isSitewide().

Referenced by MediaWiki\Block\DatabaseBlock\chooseBlock(), and User\isBlockedFromCreateAccount().

◆ appliesToTitle()

MediaWiki\Block\AbstractBlock::appliesToTitle ( Title  $title)

Checks if a block applies to a particular title.

This check does not consider whether $this->isUsertalkEditAllowed returns false, as the identity of the user making the hypothetical edit isn't known here (particularly in the case of IP hardblocks, range blocks, and auto-blocks).

Parameters
Title$title
Returns
bool

Definition at line 644 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\isSitewide().

◆ appliesToUsertalk()

MediaWiki\Block\AbstractBlock::appliesToUsertalk ( Title  $usertalk = null)

Determine whether the block allows the user to edit their own user talk page.

This is done separately from AbstractBlock::appliesToRight because there is no right for editing one's own user talk page and because the user's talk page needs to be passed into the block object, which is unaware of the user.

The ipb_allow_usertalk flag (which corresponds to the property allowUsertalk) is used on sitewide blocks and partial blocks that contain a namespace restriction on the user talk namespace, but do not contain a page restriction on the user's talk page. For all other (i.e. most) partial blocks, the flag is ignored, and the user can always edit their user talk page unless there is a page restriction on their user talk page, in which case they can never edit it. (Ideally the flag would be stored as null in these cases, but the database field isn't nullable.)

This method does not validate that the passed in talk page belongs to the block target since the target (an IP) might not be the same as the user's talk page (if they are logged in).

Since
1.33
Parameters
Title | null$usertalkThe user's user talk page. If null, and if the target is a User, the target's userpage is used
Returns
bool The user can edit their talk page

Definition at line 598 of file AbstractBlock.php.

References MediaWiki\$config, MediaWiki\Block\AbstractBlock\appliesToNamespace(), MediaWiki\Block\AbstractBlock\appliesToPage(), Config\get(), RequestContext\getMain(), MediaWiki\Block\AbstractBlock\isSitewide(), MediaWiki\Block\AbstractBlock\isUsertalkEditAllowed(), and NS_USER_TALK.

◆ getBlocker()

◆ getBlockErrorParams()

MediaWiki\Block\AbstractBlock::getBlockErrorParams ( IContextSource  $context)

Get block information used in different block error messages.

Deprecated:
since 1.35 Use BlockErrorFormatter::getMessage instead, and extract the params from the Message object using Message::getParams.
Since
1.33
Parameters
IContextSource$context
Returns
array

Definition at line 561 of file AbstractBlock.php.

References MediaWiki\MediaWikiServices\getInstance(), IContextSource\getLanguage(), IContextSource\getRequest(), and IContextSource\getUser().

◆ getBy()

MediaWiki\Block\AbstractBlock::getBy ( )

Get the user id of the blocking sysop.

Returns
int (0 for foreign users)

Definition at line 133 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\getBlocker().

Referenced by MediaWiki\Block\BlockErrorFormatter\getBlockErrorInfo().

◆ getByName()

MediaWiki\Block\AbstractBlock::getByName ( )

Get the username of the blocking sysop.

Returns
string

Definition at line 142 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\getBlocker().

Referenced by MediaWiki\Block\BlockErrorFormatter\getBlockErrorInfo().

◆ getExpiry()

◆ getHideName()

MediaWiki\Block\AbstractBlock::getHideName ( )

Get whether the block hides the target's username.

Since
1.33
Returns
bool The block hides the username

Definition at line 189 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\$mHideName.

Referenced by MediaWiki\Block\DatabaseBlock\doAutoblock(), MediaWiki\Block\DatabaseBlock\equals(), MediaWiki\Block\DatabaseBlock\getAutoblockUpdateArray(), and MediaWiki\Block\DatabaseBlock\getDatabaseArray().

◆ getId()

MediaWiki\Block\AbstractBlock::getId ( )

Get the block ID.

Returns
int|null

Definition at line 150 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\getIdentifier().

◆ getIdentifier()

MediaWiki\Block\AbstractBlock::getIdentifier ( )
abstract

Get the information that identifies this block, such that a user could look up everything that can be found about this block.

May be an ID, array of IDs, type, etc.

Returns
mixed Identifying information

Referenced by MediaWiki\Block\BlockErrorFormatter\getBlockErrorInfo(), and MediaWiki\Block\AbstractBlock\getId().

◆ getPermissionsError()

MediaWiki\Block\AbstractBlock::getPermissionsError ( IContextSource  $context)

Get the key and parameters for the corresponding error message.

Deprecated:
since 1.35 Use BlockErrorFormatter::getMessage instead, and build the array using Message::getKey and Message::getParams.
Since
1.22
Parameters
IContextSource$context
Returns
array

Definition at line 541 of file AbstractBlock.php.

References MediaWiki\MediaWikiServices\getInstance(), IContextSource\getLanguage(), IContextSource\getRequest(), and IContextSource\getUser().

◆ getReason()

◆ getTarget()

MediaWiki\Block\AbstractBlock::getTarget ( )

Get the target for this particular block.

Note that for autoblocks, this returns the unredacted name; frontend functions need to call $block->getRedactedName() in this situation.

Returns
User|string|null

Definition at line 454 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\$target.

Referenced by MediaWiki\Block\DatabaseBlock\defaultRetroactiveAutoblock(), MediaWiki\Block\DatabaseBlock\doAutoblock(), MediaWiki\Block\DatabaseBlock\doRetroactiveAutoblock(), MediaWiki\Block\BlockErrorFormatter\getBlockErrorInfo(), MediaWiki\Block\DatabaseBlock\getRedactedName(), MediaWiki\Block\AbstractBlock\getTargetAndType(), and MediaWiki\Block\DatabaseBlock\isValid().

◆ getTargetAndType()

MediaWiki\Block\AbstractBlock::getTargetAndType ( )

Get the target and target type for this particular block.

Note that for autoblocks, this returns the unredacted name; frontend functions need to call $block->getRedactedName() in this situation.

If the type is not null, it will be an AbstractBlock::TYPE_ constant.

Returns
array [ User|String|null, int|null ]
Todo:
FIXME: This should be an integral part of the block member variables

Definition at line 444 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\getTarget(), and MediaWiki\Block\AbstractBlock\getType().

◆ getTimestamp()

MediaWiki\Block\AbstractBlock::getTimestamp ( )

Get the timestamp indicating when the block was created.

Since
1.33
Returns
string

Definition at line 484 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\$mTimestamp.

Referenced by MediaWiki\Block\BlockErrorFormatter\getBlockErrorInfo(), and MediaWiki\Block\DatabaseBlock\updateTimestamp().

◆ getType()

MediaWiki\Block\AbstractBlock::getType ( )

Get the type of target for this particular block.

Returns
int|null AbstractBlock::TYPE_ constant, will never be TYPE_ID

Definition at line 430 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\$type.

Referenced by ApiBase\dieBlocked(), MediaWiki\Block\BlockErrorFormatter\getBlockErrorMessageKey(), MediaWiki\Block\AbstractBlock\getTargetAndType(), and MediaWiki\Block\BlockManager\shouldTrackBlockWithCookie().

◆ isCreateAccountBlocked()

MediaWiki\Block\AbstractBlock::isCreateAccountBlocked (   $x = null)

Get or set the flag indicating whether this block blocks the target from creating an account.

(Note that the flag may be overridden depending on global configs.)

Since
1.33
Parameters
null | bool$xValue to set (if null, just get the property value)
Returns
bool Value of the property

Definition at line 225 of file AbstractBlock.php.

References wfSetVar().

Referenced by MediaWiki\Block\CompositeBlock\__construct(), MediaWiki\Block\DatabaseBlock\__construct(), MediaWiki\Block\SystemBlock\appliesToPasswordReset(), MediaWiki\Block\AbstractBlock\appliesToPasswordReset(), MediaWiki\Block\AbstractBlock\appliesToRight(), MediaWiki\Block\DatabaseBlock\doAutoblock(), MediaWiki\Block\DatabaseBlock\equals(), MediaWiki\Block\DatabaseBlock\getAutoblockUpdateArray(), MediaWiki\Block\DatabaseBlock\getDatabaseArray(), and MediaWiki\Block\DatabaseBlock\initFromRow().

◆ isEmailBlocked()

MediaWiki\Block\AbstractBlock::isEmailBlocked (   $x = null)

Get or set the flag indicating whether this block blocks the target from sending emails.

(Note that the flag may be overridden depending on global configs.)

Since
1.33
Parameters
null | bool$xValue to set (if null, just get the property value)
Returns
bool Value of the property

Definition at line 238 of file AbstractBlock.php.

References wfSetVar().

Referenced by MediaWiki\Block\CompositeBlock\__construct(), MediaWiki\Block\DatabaseBlock\__construct(), MediaWiki\Block\AbstractBlock\appliesToRight(), MediaWiki\Block\DatabaseBlock\equals(), MediaWiki\Block\DatabaseBlock\getDatabaseArray(), and MediaWiki\Block\DatabaseBlock\initFromRow().

◆ isSitewide()

◆ isUsertalkEditAllowed()

MediaWiki\Block\AbstractBlock::isUsertalkEditAllowed (   $x = null)

Get or set the flag indicating whether this block blocks the target from editing their own user talk page.

(Note that the flag may be overridden depending on global configs.)

Since
1.33
Parameters
null | bool$xValue to set (if null, just get the property value)
Returns
bool Value of the property

Definition at line 251 of file AbstractBlock.php.

References wfSetVar().

Referenced by MediaWiki\Block\CompositeBlock\__construct(), MediaWiki\Block\DatabaseBlock\__construct(), MediaWiki\Block\AbstractBlock\appliesToUsertalk(), MediaWiki\Block\DatabaseBlock\doAutoblock(), MediaWiki\Block\DatabaseBlock\equals(), MediaWiki\Block\DatabaseBlock\getAutoblockUpdateArray(), MediaWiki\Block\DatabaseBlock\getDatabaseArray(), MediaWiki\Block\DatabaseBlock\initFromRow(), and MediaWiki\Block\AbstractBlock\prevents().

◆ parseTarget()

static MediaWiki\Block\AbstractBlock::parseTarget (   $target)
static

From an existing block, get the target and the type of target.

Note that, except for null, it is always safe to treat the target as a string; for User objects this will return User::__toString() which in turn gives User::getName().

If the type is not null, it will be an AbstractBlock::TYPE_ constant.

Parameters
string | int | User | null$target
Returns
array [ User|String|null, int|null ]

Definition at line 376 of file AbstractBlock.php.

References MediaWiki\Block\AbstractBlock\$target, IP\isValid(), IP\isValidRange(), User\newFromName(), IP\sanitizeIP(), and IP\sanitizeRange().

◆ prevents()

MediaWiki\Block\AbstractBlock::prevents (   $action,
  $x = null 
)

Get/set whether the block prevents a given action.

Deprecated:
since 1.33, use appliesToRight to determine block behaviour, and specific methods to get/set properties
Parameters
string$actionAction to check
bool | null$xValue for set, or null to just get value
Returns
bool|null Null for unrecognized rights.

Definition at line 313 of file AbstractBlock.php.

References MediaWiki\$action, MediaWiki\$config, $res, Config\get(), MediaWiki\MediaWikiServices\getInstance(), RequestContext\getMain(), MediaWiki\Block\AbstractBlock\isSitewide(), MediaWiki\Block\AbstractBlock\isUsertalkEditAllowed(), and wfSetVar().

◆ setBlocker()

MediaWiki\Block\AbstractBlock::setBlocker (   $user)

Set the user who implemented (or will implement) this block.

Parameters
User | string$userLocal User object or username string

Definition at line 518 of file AbstractBlock.php.

References User\isUsableName(), and User\newFromName().

Referenced by MediaWiki\Block\AbstractBlock\__construct(), and MediaWiki\Block\DatabaseBlock\initFromRow().

◆ setExpiry()

MediaWiki\Block\AbstractBlock::setExpiry (   $expiry)

Set the block expiry time.

Since
1.33
Parameters
string$expiry

Definition at line 474 of file AbstractBlock.php.

Referenced by MediaWiki\Block\DatabaseBlock\__construct(), MediaWiki\Block\DatabaseBlock\initFromRow(), and MediaWiki\Block\DatabaseBlock\updateTimestamp().

◆ setHideName()

MediaWiki\Block\AbstractBlock::setHideName (   $hideName)

Set whether ths block hides the target's username.

Since
1.33
Parameters
bool$hideNameThe block hides the username

Definition at line 199 of file AbstractBlock.php.

Referenced by MediaWiki\Block\CompositeBlock\__construct(), MediaWiki\Block\AbstractBlock\__construct(), and MediaWiki\Block\DatabaseBlock\initFromRow().

◆ setReason()

MediaWiki\Block\AbstractBlock::setReason (   $reason)

Set the reason for creating the block.

Since
1.33
Parameters
string$reason

Definition at line 179 of file AbstractBlock.php.

Referenced by MediaWiki\Block\AbstractBlock\__construct(), and MediaWiki\Block\DatabaseBlock\initFromRow().

◆ setTarget()

MediaWiki\Block\AbstractBlock::setTarget (   $target)

Set the target for this block, and update $this->type accordingly.

Parameters
mixed$target

Definition at line 502 of file AbstractBlock.php.

Referenced by MediaWiki\Block\AbstractBlock\__construct(), and MediaWiki\Block\DatabaseBlock\initFromRow().

◆ setTimestamp()

MediaWiki\Block\AbstractBlock::setTimestamp (   $timestamp)

Set the timestamp indicating when the block was created.

Since
1.33
Parameters
string$timestamp

Definition at line 494 of file AbstractBlock.php.

Referenced by MediaWiki\Block\AbstractBlock\__construct(), MediaWiki\Block\DatabaseBlock\initFromRow(), and MediaWiki\Block\DatabaseBlock\updateTimestamp().

◆ shouldTrackWithCookie()

MediaWiki\Block\AbstractBlock::shouldTrackWithCookie (   $isAnon)

Check if the block should be tracked with a cookie.

Since
1.33
Deprecated:
since 1.34 Use BlockManager::trackBlockWithCookie instead of calling this directly.
Parameters
bool$isAnonThe user is logged out
Returns
bool The block should be tracked with a cookie

Definition at line 686 of file AbstractBlock.php.

References wfDeprecated().

Member Data Documentation

◆ $allowUsertalk

bool MediaWiki\Block\AbstractBlock::$allowUsertalk = false
protected

Definition at line 57 of file AbstractBlock.php.

◆ $blockCreateAccount

bool MediaWiki\Block\AbstractBlock::$blockCreateAccount = false
protected

Definition at line 60 of file AbstractBlock.php.

◆ $blocker

User MediaWiki\Block\AbstractBlock::$blocker
protected

Definition at line 78 of file AbstractBlock.php.

Referenced by MediaWiki\Block\AbstractBlock\getBlocker().

◆ $isSitewide

bool MediaWiki\Block\AbstractBlock::$isSitewide = true
protected

Definition at line 81 of file AbstractBlock.php.

◆ $mBlockEmail

bool MediaWiki\Block\AbstractBlock::$mBlockEmail = false
protected

Definition at line 54 of file AbstractBlock.php.

◆ $mExpiry

string MediaWiki\Block\AbstractBlock::$mExpiry = ''
Deprecated:
since 1.34.

Use getExpiry and setExpiry instead.

Definition at line 51 of file AbstractBlock.php.

Referenced by MediaWiki\Block\AbstractBlock\getExpiry().

◆ $mHideName

bool MediaWiki\Block\AbstractBlock::$mHideName = false
Deprecated:
since 1.34.

Use getHideName and setHideName instead.

Definition at line 66 of file AbstractBlock.php.

Referenced by MediaWiki\Block\AbstractBlock\getHideName().

◆ $mReason

string MediaWiki\Block\AbstractBlock::$mReason
Deprecated:
since 1.34.

Use getReason and setReason instead.

Definition at line 39 of file AbstractBlock.php.

Referenced by MediaWiki\Block\AbstractBlock\getReason().

◆ $mTimestamp

string MediaWiki\Block\AbstractBlock::$mTimestamp
Deprecated:
since 1.34.

Use getTimestamp and setTimestamp instead.

Definition at line 45 of file AbstractBlock.php.

Referenced by MediaWiki\Block\AbstractBlock\getTimestamp().

◆ $target

◆ $type

int null MediaWiki\Block\AbstractBlock::$type
protected

AbstractBlock::TYPE_ constant.

After the block has been loaded from the database, this can only be USER, IP or RANGE.

Definition at line 75 of file AbstractBlock.php.

Referenced by MediaWiki\Block\DatabaseBlock\findRestriction(), MediaWiki\Block\AbstractBlock\getType(), MediaWiki\Block\DatabaseBlock\newListFromTarget(), and MediaWiki\Block\DatabaseBlock\newLoad().

◆ TYPE_AUTO

const MediaWiki\Block\AbstractBlock::TYPE_AUTO = 4

◆ TYPE_ID

const MediaWiki\Block\AbstractBlock::TYPE_ID = 5

Definition at line 88 of file AbstractBlock.php.

◆ TYPE_IP

const MediaWiki\Block\AbstractBlock::TYPE_IP = 2

◆ TYPE_RANGE

◆ TYPE_USER

const MediaWiki\Block\AbstractBlock::TYPE_USER = 1

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