MediaWiki REL1_34
MediaWiki\Block\CompositeBlock Class Reference

Multiple Block class. More...

Inheritance diagram for MediaWiki\Block\CompositeBlock:
Collaboration diagram for MediaWiki\Block\CompositeBlock:

Public Member Functions

 __construct (array $options=[])
 Create a new block with specified parameters on a user, IP or IP range.
 
 appliesToNamespace ( $ns)
 Checks if a block applies to a particular namespace.
Since
1.33
Parameters
int$ns
Returns
bool

 
 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

 
 appliesToPasswordReset ()
 Check if the block prevents a user from resetting their password.
Since
1.33
Returns
bool The block blocks password reset

 
 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)

 
 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

 
 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

 
 getExpiry ()
 Get the block expiry time.
Since
1.19
Returns
string

 
 getOriginalBlocks ()
 Get the original blocks from which this block is composed.
 
 getPermissionsError (IContextSource $context)
 Get the key and parameters for the corresponding error message.
Since
1.22
Parameters
IContextSource$context
Returns
array

 
- Public Member Functions inherited from MediaWiki\Block\AbstractBlock
 getBlocker ()
 Get the user who implemented this block.
 
 getBlockErrorParams (IContextSource $context)
 Get block information used in different block error messages.
 
 getBy ()
 Get the user id of the blocking sysop.
 
 getByName ()
 Get the username of the blocking sysop.
 
 getHideName ()
 Get whether the block hides the target's username.
 
 getId ()
 Get the block ID.
 
 getReason ()
 Get the reason given for creating the block.
 
 getTarget ()
 Get the target for this particular block.
 
 getTargetAndType ()
 Get the target and target type for this particular block.
 
 getTimestamp ()
 Get the timestamp indicating when the block was created.
 
 getType ()
 Get the type of target for this particular block.
 
 isCreateAccountBlocked ( $x=null)
 Get or set the flag indicating whether this block blocks the target from creating an account.
 
 isEmailBlocked ( $x=null)
 Get or set the flag indicating whether this block blocks the target from sending emails.
 
 isSitewide ( $x=null)
 Indicates that the block is a sitewide block.
 
 isUsertalkEditAllowed ( $x=null)
 Get or set the flag indicating whether this block blocks the target from editing their own user talk page.
 
 prevents ( $action, $x=null)
 Get/set whether the block prevents a given action.
 
 setBlocker ( $user)
 Set the user who implemented (or will implement) this block.
 
 setExpiry ( $expiry)
 Set the block expiry time.
 
 setHideName ( $hideName)
 Set whether ths block hides the target's username.
 
 setReason ( $reason)
 Set the reason for creating the block.
 
 setTarget ( $target)
 Set the target for this block, and update $this->type accordingly.
 
 setTimestamp ( $timestamp)
 Set the timestamp indicating when the block was created.
 
 shouldTrackWithCookie ( $isAnon)
 Check if the block should be tracked with a cookie.
 

Protected Member Functions

 getIds ()
 Get the IDs for the original blocks, ignoring any that are null.
 

Private Member Functions

 methodReturnsValue ( $method, $value,... $params)
 Determine whether any original blocks have a particular method returning a particular value.
 
 propHasValue ( $prop, $value)
 Determine whether any original blocks have a particular property set to a particular value.
 

Private Attributes

AbstractBlock[] $originalBlocks
 

Additional Inherited Members

- Static Public Member Functions inherited from MediaWiki\Block\AbstractBlock
static parseTarget ( $target)
 From an existing block, get the target and the type of target.
 
- Public Attributes inherited from MediaWiki\Block\AbstractBlock
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 inherited from MediaWiki\Block\AbstractBlock
bool $allowUsertalk = false
 
bool $blockCreateAccount = false
 
User $blocker
 
bool $isSitewide = true
 
bool $mBlockEmail = false
 
User string $target
 
int $type
 AbstractBlock::TYPE_ constant.
 

Detailed Description

Multiple Block class.

Multiple blocks exist to enforce restrictions from more than one block, if several blocks apply to a user/IP. Multiple blocks are created temporarily on enforcement.

Since
1.34

Definition at line 36 of file CompositeBlock.php.

Constructor & Destructor Documentation

◆ __construct()

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

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

Parameters
array$optionsParameters of the block, with options supported by AbstractBlock::__construct, and also:
  • originalBlocks: (Block[]) Blocks that this block is composed from

Reimplemented from MediaWiki\Block\AbstractBlock.

Definition at line 47 of file CompositeBlock.php.

References MediaWiki\Block\AbstractBlock\isCreateAccountBlocked(), MediaWiki\Block\AbstractBlock\isEmailBlocked(), MediaWiki\Block\AbstractBlock\isSitewide(), MediaWiki\Block\AbstractBlock\isUsertalkEditAllowed(), MediaWiki\Block\CompositeBlock\propHasValue(), and MediaWiki\Block\AbstractBlock\setHideName().

Member Function Documentation

◆ appliesToNamespace()

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

Checks if a block applies to a particular namespace.

Since
1.33
Parameters
int$ns
Returns
bool

Reimplemented from MediaWiki\Block\AbstractBlock.

Definition at line 208 of file CompositeBlock.php.

References MediaWiki\Block\CompositeBlock\methodReturnsValue().

◆ appliesToPage()

MediaWiki\Block\CompositeBlock::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

Reimplemented from MediaWiki\Block\AbstractBlock.

Definition at line 215 of file CompositeBlock.php.

References MediaWiki\Block\CompositeBlock\methodReturnsValue().

◆ appliesToPasswordReset()

MediaWiki\Block\CompositeBlock::appliesToPasswordReset ( )

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

Since
1.33
Returns
bool The block blocks password reset

Reimplemented from MediaWiki\Block\AbstractBlock.

Definition at line 222 of file CompositeBlock.php.

References MediaWiki\Block\CompositeBlock\methodReturnsValue().

◆ appliesToRight()

MediaWiki\Block\CompositeBlock::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)

Determines whether the CompositeBlock applies to a right by checking whether the original blocks apply to that right. Each block can report true (applies), false (does not apply) or null (unsure). Then:

  • If any original blocks apply, this block applies
  • If no original blocks apply but any are unsure, this block is unsure
  • If all blocks do not apply, this block does not apply

Reimplemented from MediaWiki\Block\AbstractBlock.

Definition at line 175 of file CompositeBlock.php.

◆ appliesToTitle()

MediaWiki\Block\CompositeBlock::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

Reimplemented from MediaWiki\Block\AbstractBlock.

Definition at line 201 of file CompositeBlock.php.

References $title, and MediaWiki\Block\CompositeBlock\methodReturnsValue().

◆ appliesToUsertalk()

MediaWiki\Block\CompositeBlock::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

Reimplemented from MediaWiki\Block\AbstractBlock.

Definition at line 194 of file CompositeBlock.php.

References MediaWiki\Block\CompositeBlock\methodReturnsValue().

◆ getExpiry()

MediaWiki\Block\CompositeBlock::getExpiry ( )

Get the block expiry time.

Since
1.19
Returns
string

Reimplemented from MediaWiki\Block\AbstractBlock.

Definition at line 113 of file CompositeBlock.php.

◆ getIds()

MediaWiki\Block\CompositeBlock::getIds ( )
protected

Get the IDs for the original blocks, ignoring any that are null.

Returns
int[]

Definition at line 129 of file CompositeBlock.php.

Referenced by MediaWiki\Block\CompositeBlock\getPermissionsError().

◆ getOriginalBlocks()

MediaWiki\Block\CompositeBlock::getOriginalBlocks ( )

Get the original blocks from which this block is composed.

Since
1.34
Returns
AbstractBlock[]

Definition at line 106 of file CompositeBlock.php.

References MediaWiki\Block\CompositeBlock\$originalBlocks.

◆ getPermissionsError()

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

Get the key and parameters for the corresponding error message.

Since
1.22
Parameters
IContextSource$context
Returns
array

Reimplemented from MediaWiki\Block\AbstractBlock.

Definition at line 143 of file CompositeBlock.php.

References $context, MediaWiki\Block\AbstractBlock\getBlockErrorParams(), and MediaWiki\Block\CompositeBlock\getIds().

◆ methodReturnsValue()

MediaWiki\Block\CompositeBlock::methodReturnsValue (   $method,
  $value,
  $params 
)
private

Determine whether any original blocks have a particular method returning a particular value.

Parameters
string$method
mixed$value
mixed...$params
Returns
bool At least one block has the method returning the value

Definition at line 91 of file CompositeBlock.php.

Referenced by MediaWiki\Block\CompositeBlock\appliesToNamespace(), MediaWiki\Block\CompositeBlock\appliesToPage(), MediaWiki\Block\CompositeBlock\appliesToPasswordReset(), MediaWiki\Block\CompositeBlock\appliesToTitle(), and MediaWiki\Block\CompositeBlock\appliesToUsertalk().

◆ propHasValue()

MediaWiki\Block\CompositeBlock::propHasValue (   $prop,
  $value 
)
private

Determine whether any original blocks have a particular property set to a particular value.

Parameters
string$prop
mixed$value
Returns
bool At least one block has the property set to the value

Definition at line 73 of file CompositeBlock.php.

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

Member Data Documentation

◆ $originalBlocks

AbstractBlock [] MediaWiki\Block\CompositeBlock::$originalBlocks
private

Definition at line 38 of file CompositeBlock.php.

Referenced by MediaWiki\Block\CompositeBlock\getOriginalBlocks().


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