MediaWiki REL1_32
Block Class Reference
Collaboration diagram for Block:

Public Member Functions

 __construct ( $options=[])
 Create a new block with specified parameters on a user, IP or IP range.
 
 delete ()
 Delete the row from the IP blocks table.
 
 deleteIfExpired ()
 Check if a block has expired.
 
 doAutoblock ( $autoblockIP)
 Autoblocks the given IP, referring to this Block.
 
 equals (Block $block)
 Check if two blocks are effectively equal.
 
 fromMaster ( $x=null)
 Get/set a flag determining whether the master is used for reads.
 
 getBlocker ()
 Get the user who implemented this block.
 
 getBy ()
 Get the user id of the blocking sysop.
 
 getByName ()
 Get the username of the blocking sysop.
 
 getCookieValue ()
 Get the BlockID cookie's value for this block.
 
 getExpiry ()
 
 getId ()
 Get the block ID.
 
 getPermissionsError (IContextSource $context)
 Get the key and parameters for the corresponding error message.
 
 getRangeEnd ()
 Get the IP address at the end of the range in Hex form.
 
 getRangeStart ()
 Get the IP address at the start of the range in Hex form.
 
 getRedactedName ()
 Get the block name, but with autoblocked IPs hidden as per standard privacy policy.
 
 getSystemBlockType ()
 Get the system block type, if any.
 
 getTarget ()
 Get the target for this particular Block.
 
 getTargetAndType ()
 Get the target and target type for this particular Block.
 
 getType ()
 Get the type of target for this particular block.
 
 insert ( $dbw=null)
 Insert a block into the block table.
 
 isAutoblocking ( $x=null)
 
 isExpired ()
 Has the block expired?
 
 isHardblock ( $x=null)
 Get/set whether the Block is a hardblock (affects logged-in users on a given IP/range)
 
 isValid ()
 Is the block address valid (i.e.
 
 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.
 
 setCookie (WebResponse $response)
 Set the 'BlockID' cookie to this block's ID and expiry time.
 
 setTarget ( $target)
 Set the target for this block, and update $this->type accordingly.
 
 update ()
 Update a block in the DB with new parameters.
 
 updateTimestamp ()
 Update the timestamp on autoblocks.
 

Static Public Member Functions

static chooseBlock (array $blocks, array $ipChain)
 From a list of multiple blocks, find the most exact and strongest Block.
 
static clearCookie (WebResponse $response)
 Unset the 'BlockID' cookie.
 
static getAutoblockExpiry ( $timestamp)
 Get a timestamp of the expiry for autoblocks.
 
static getBlocksForIPList (array $ipChain, $isAnon, $fromMaster=false)
 Get all blocks that match any IP from an array of IP addresses.
 
static getIdFromCookieValue ( $cookieValue)
 Get the stored ID from the 'BlockID' cookie.
 
static getQueryInfo ()
 Return the tables, fields, and join conditions to be selected to create a new block object.
 
static getRangeCond ( $start, $end=null)
 Get a set of SQL conditions which will select rangeblocks encompassing a given range.
 
static isWhitelistedFromAutoblocks ( $ip)
 Checks whether a given IP is on the autoblock whitelist.
 
static newFromID ( $id)
 Load a blocked user from their block id.
 
static newFromRow ( $row)
 Create a new Block object from a database row.
 
static newFromTarget ( $specificTarget, $vagueTarget=null, $fromMaster=false)
 Given a target and the target's type, get an existing Block object if possible.
 
static parseTarget ( $target)
 From an existing Block, get the target and the type of target.
 
static purgeExpired ()
 Purge expired blocks from the ipblocks table.
 
static selectFields ()
 Return the list of ipblocks fields that should be selected to create a new block.
 

Public Attributes

bool $mAuto
 
string $mExpiry
 
bool $mHideName
 
int $mParentBlockId
 
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 Member Functions

 doRetroactiveAutoblock ()
 Retroactively autoblocks the last IP used by the user (if it is a user) blocked by this Block.
 
 getAutoblockUpdateArray (IDatabase $dbw)
 
 getDatabaseArray (IDatabase $dbw)
 Get an array suitable for passing to $dbw->insert() or $dbw->update()
 
 initFromRow ( $row)
 Given a database row from the ipblocks table, initialize member variables.
 
 newLoad ( $vagueTarget=null)
 Load a block from the database which affects the already-set $this->target: 1) A block directly on the given user or IP 2) A rangeblock encompassing the given IP (smallest first) 3) An autoblock on the given IP.
 

Static Protected Member Functions

static defaultRetroactiveAutoblock (Block $block, array &$blockIds)
 Retroactively autoblocks the last IP used by the user (if it is a user) blocked by this Block.
 
static getIpFragment ( $hex)
 Get the component of an IP address which is certain to be the same between an IP address and a rangeblock containing that IP address.
 

Private Attributes

User $blocker
 
int $forcedTargetID
 Hack for foreign blocking (CentralAuth)
 
bool $isAutoblocking
 
bool $isHardblock
 
bool $mBlockEmail
 
bool $mCreateAccount
 
bool $mDisableUsertalk
 
bool $mFromMaster
 
int $mId
 
string null $systemBlockType
 
User string $target
 
int $type
 Block::TYPE_ constant.
 

Detailed Description

Definition at line 27 of file Block.php.

Constructor & Destructor Documentation

◆ __construct()

Block::__construct (   $options = [])

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

Parameters
array$optionsParameters of the block: address string|User Target user name, User object, IP address or IP range user int Override target user ID (for foreign users) by int User ID of the blocker reason string Reason of the block timestamp string The time at which the block comes into effect auto bool Is this an automatic block? expiry string Timestamp of expiration of the block or 'infinity' anonOnly bool Only disallow anonymous actions createAccount bool Disallow creation of new accounts enableAutoblock bool Enable automatic blocking hideName bool Hide the target user name blockEmail bool Disallow sending emails allowUsertalk bool Allow the target to edit its own talk page byText string Username of the blocker (for foreign users) systemBlock string Indicate that this block is automatically created by MediaWiki rather than being stored in the database. Value is a string to return from self::getSystemBlockType().
Since
1.26 accepts $options array instead of individual parameters; order of parameters above reflects the original order

Definition at line 115 of file Block.php.

References $options, DB_REPLICA, isAutoblocking(), isHardblock(), User\newFromId(), prevents(), setBlocker(), setTarget(), wfDeprecated(), wfGetDB(), and wfTimestamp().

Member Function Documentation

◆ chooseBlock()

static Block::chooseBlock ( array  $blocks,
array  $ipChain 
)
static

From a list of multiple blocks, find the most exact and strongest Block.

The logic for finding the "best" block is:

  • Blocks that match the block's target IP are preferred over ones in a range
  • Hardblocks are chosen over softblocks that prevent account creation
  • Softblocks that prevent account creation are chosen over other softblocks
  • Other softblocks are chosen over autoblocks
  • If there are multiple exact or range blocks at the same level, the one chosen is random This should be used when $blocks where retrieved from the user's IP address and $ipChain is populated from the same IP address information.
Parameters
array$blocksArray of Block objects
array$ipChainList of IPs (strings). This is used to determine how "close" a block is to the server, and if a block matches exactly, or is in a range. The order is furthest from the server to nearest e.g., (Browser, proxy1, proxy2, local-squid, ...)
Exceptions
MWException
Returns
Block|null The "best" block from the list

Definition at line 1294 of file Block.php.

References as, false, isHardblock(), and prevents().

Referenced by User\getBlockedStatus(), and BlockTest\testBlocksOnXff().

◆ clearCookie()

static Block::clearCookie ( WebResponse  $response)
static

Unset the 'BlockID' cookie.

Since
1.29
Parameters
WebResponse$responseThe response on which to unset the cookie.

Definition at line 1553 of file Block.php.

References $response.

Referenced by User\getBlockFromCookieValue().

◆ defaultRetroactiveAutoblock()

static Block::defaultRetroactiveAutoblock ( Block  $block,
array $blockIds 
)
staticprotected

Retroactively autoblocks the last IP used by the user (if it is a user) blocked by this Block.

This will use the recentchanges table.

Parameters
Block$block
array&$blockIds

Definition at line 714 of file Block.php.

References $dbr, $options, $res, $target, $wgPutIPinRC, as, DB_REPLICA, doAutoblock(), getTarget(), User\newFromName(), wfDebug(), and wfGetDB().

Referenced by doRetroactiveAutoblock().

◆ delete()

Block::delete ( )

Delete the row from the IP blocks table.

Exceptions
MWException
Returns
bool

Definition at line 503 of file Block.php.

References DB_MASTER, getId(), wfGetDB(), and wfReadOnly().

◆ deleteIfExpired()

Block::deleteIfExpired ( )

Check if a block has expired.

Delete it if it is.

Returns
bool

Definition at line 889 of file Block.php.

References isExpired(), and wfDebug().

◆ doAutoblock()

Block::doAutoblock (   $autoblockIP)

Autoblocks the given IP, referring to this Block.

Parameters
string$autoblockIPThe IP to autoblock.
Returns
int|bool Block ID if an autoblock was inserted, false if not.

Definition at line 812 of file Block.php.

References $mHideName, $mId, getAutoblockExpiry(), getBlocker(), getSystemBlockType(), getTarget(), isAutoblocking(), newFromTarget(), prevents(), wfDebug(), wfMessage(), and wfTimestampNow().

Referenced by defaultRetroactiveAutoblock().

◆ doRetroactiveAutoblock()

Block::doRetroactiveAutoblock ( )
protected

Retroactively autoblocks the last IP used by the user (if it is a user) blocked by this Block.

Returns
array Block IDs of retroactive autoblocks made

Definition at line 691 of file Block.php.

References defaultRetroactiveAutoblock(), getTarget(), getType(), isAutoblocking(), and wfDebug().

Referenced by insert(), and update().

◆ equals()

Block::equals ( Block  $block)

Check if two blocks are effectively equal.

Doesn't check irrelevant things like the blocking user or the block timestamp, only things which affect the blocked user

Parameters
Block$block
Returns
bool

Definition at line 282 of file Block.php.

References isAutoblocking(), isHardblock(), and prevents().

◆ fromMaster()

Block::fromMaster (   $x = null)

Get/set a flag determining whether the master is used for reads.

Parameters
bool | null$x
Returns
bool

Definition at line 1032 of file Block.php.

References wfSetVar().

◆ getAutoblockExpiry()

static Block::getAutoblockExpiry (   $timestamp)
static

Get a timestamp of the expiry for autoblocks.

Parameters
string | int$timestamp
Returns
string

Definition at line 1124 of file Block.php.

References $wgAutoblockExpiry, and wfTimestamp().

Referenced by doAutoblock(), and updateTimestamp().

◆ getAutoblockUpdateArray()

Block::getAutoblockUpdateArray ( IDatabase  $dbw)
protected
Parameters
IDatabase$dbw
Returns
array

Definition at line 676 of file Block.php.

References getBlocker(), and prevents().

Referenced by update().

◆ getBlocker()

Block::getBlocker ( )

Get the user who implemented this block.

Returns
User User object. May name a foreign user.

Definition at line 1499 of file Block.php.

References $blocker.

Referenced by doAutoblock(), getAutoblockUpdateArray(), getBy(), getByName(), getDatabaseArray(), getPermissionsError(), and insert().

◆ getBlocksForIPList()

static Block::getBlocksForIPList ( array  $ipChain,
  $isAnon,
  $fromMaster = false 
)
static

Get all blocks that match any IP from an array of IP addresses.

Parameters
array$ipChainList of IPs (strings), usually retrieved from the X-Forwarded-For header of the request
bool$isAnonExclude anonymous-only blocks if false
bool$fromMasterWhether to query the master or replica DB
Returns
array Array of Blocks
Since
1.22

Definition at line 1213 of file Block.php.

References $rows, as, DB_MASTER, DB_REPLICA, getQueryInfo(), getRangeCond(), LIST_OR, newFromRow(), and wfGetDB().

Referenced by User\getBlockedStatus(), and BlockTest\testBlocksOnXff().

◆ getBy()

Block::getBy ( )

Get the user id of the blocking sysop.

Returns
int (0 for foreign users)

Definition at line 990 of file Block.php.

References $blocker, getBlocker(), and User\getId().

Referenced by ApiQueryUserInfo\getBlockInfo().

◆ getByName()

Block::getByName ( )

Get the username of the blocking sysop.

Returns
string

Definition at line 1002 of file Block.php.

References $blocker, getBlocker(), User\getName(), and string.

Referenced by ApiQueryUserInfo\getBlockInfo(), and getPermissionsError().

◆ getCookieValue()

Block::getCookieValue ( )

Get the BlockID cookie's value for this block.

This is usually the block ID concatenated with an HMAC in order to avoid spoofing (T152951), but if wgSecretKey is not set will just be the block ID.

Since
1.29
Returns
string The block ID, probably concatenated with "!" and the HMAC.

Definition at line 1566 of file Block.php.

References getId(), and MWCryptHash\hmac().

Referenced by setCookie().

◆ getDatabaseArray()

Block::getDatabaseArray ( IDatabase  $dbw)
protected

Get an array suitable for passing to $dbw->insert() or $dbw->update()

Parameters
IDatabase$dbw
Returns
array

Definition at line 642 of file Block.php.

References $forcedTargetID, $mAuto, $mParentBlockId, Wikimedia\Rdbms\IDatabase\encodeExpiry(), getBlocker(), User\getId(), getRangeEnd(), getRangeStart(), isAutoblocking(), isHardblock(), prevents(), string, and Wikimedia\Rdbms\IDatabase\timestamp().

Referenced by insert(), and update().

◆ getExpiry()

Block::getExpiry ( )
Since
1.19
Returns
mixed|string

Definition at line 1483 of file Block.php.

References $mExpiry.

Referenced by ApiQueryUserInfo\getBlockInfo(), and setCookie().

◆ getId()

Block::getId ( )

Get the block ID.

Returns
int

Definition at line 1013 of file Block.php.

References $mId.

Referenced by delete(), ApiQueryUserInfo\getBlockInfo(), getCookieValue(), getPermissionsError(), and update().

◆ getIdFromCookieValue()

static Block::getIdFromCookieValue (   $cookieValue)
static

Get the stored ID from the 'BlockID' cookie.

The cookie's value is usually a combination of the ID and a HMAC (see Block::setCookie), but will sometimes only be the ID.

Since
1.29
Parameters
string$cookieValueThe string in which to find the ID.
Returns
int|null The block ID, or null if the HMAC is present and invalid.

Definition at line 1589 of file Block.php.

References false, and MWCryptHash\hmac().

Referenced by User\getBlockFromCookieValue(), and UserTest\testAutoblockCookies().

◆ getIpFragment()

static Block::getIpFragment (   $hex)
staticprotected

Get the component of an IP address which is certain to be the same between an IP address and a rangeblock containing that IP address.

Parameters
string$hexHexadecimal IP representation
Returns
string

Definition at line 445 of file Block.php.

References $wgBlockCIDRLimit.

Referenced by getRangeCond().

◆ getPermissionsError()

Block::getPermissionsError ( IContextSource  $context)

Get the key and parameters for the corresponding error message.

Since
1.22
Parameters
IContextSource$context
Returns
array

Definition at line 1616 of file Block.php.

References $blocker, $context, $lang, $link, $mReason, $systemBlockType, getBlocker(), getByName(), getId(), IContextSource\getLanguage(), getSystemBlockType(), getTarget(), User\getUserPage(), and string.

Referenced by UserBlockedError\__construct().

◆ getQueryInfo()

static Block::getQueryInfo ( )
static

Return the tables, fields, and join conditions to be selected to create a new block object.

Since
1.31
Returns
array With three keys:
  • tables: (string[]) to include in the $table to IDatabase->select()
  • fields: (string[]) to include in the $vars to IDatabase->select()
  • joins: (array) to include in the $join_conds to IDatabase->select()

Definition at line 251 of file Block.php.

Referenced by CleanupBlocks\execute(), getBlocksForIPList(), newFromID(), and newLoad().

◆ getRangeCond()

static Block::getRangeCond (   $start,
  $end = null 
)
static

Get a set of SQL conditions which will select rangeblocks encompassing a given range.

Parameters
string$startHexadecimal IP representation
string | null$endHexadecimal IP representation, or null to use $start = $end
Returns
string

Definition at line 412 of file Block.php.

References $dbr, DB_REPLICA, getIpFragment(), LIST_AND, and wfGetDB().

Referenced by SpecialBlockList\getBlockListPager(), getBlocksForIPList(), and newLoad().

◆ getRangeEnd()

Block::getRangeEnd ( )

Get the IP address at the end of the range in Hex form.

Exceptions
MWException
Returns
string IP in Hex form

Definition at line 971 of file Block.php.

References list, type, TYPE_IP, TYPE_RANGE, and TYPE_USER.

Referenced by getDatabaseArray().

◆ getRangeStart()

Block::getRangeStart ( )

Get the IP address at the start of the range in Hex form.

Exceptions
MWException
Returns
string IP in Hex form

Definition at line 952 of file Block.php.

References list, type, TYPE_IP, TYPE_RANGE, and TYPE_USER.

Referenced by getDatabaseArray().

◆ getRedactedName()

Block::getRedactedName ( )

Get the block name, but with autoblocked IPs hidden as per standard privacy policy.

Returns
string Text is escaped

Definition at line 1106 of file Block.php.

References getTarget(), and wfMessage().

◆ getSystemBlockType()

Block::getSystemBlockType ( )

Get the system block type, if any.

Since
1.29
Returns
string|null

Definition at line 1022 of file Block.php.

References $systemBlockType.

Referenced by doAutoblock(), ApiQueryUserInfo\getBlockInfo(), getPermissionsError(), and insert().

◆ getTarget()

Block::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

Definition at line 1474 of file Block.php.

References $target.

Referenced by defaultRetroactiveAutoblock(), doAutoblock(), doRetroactiveAutoblock(), getPermissionsError(), getRedactedName(), getTargetAndType(), and isValid().

◆ getTargetAndType()

Block::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.

Returns
array [ User|String, Block::TYPE_ constant ]
Todo:
FIXME: This should be an integral part of the Block member variables

Definition at line 1464 of file Block.php.

References getTarget(), and getType().

◆ getType()

Block::getType ( )

Get the type of target for this particular block.

Returns
int Block::TYPE_ constant, will never be TYPE_ID

Definition at line 1451 of file Block.php.

References $type, and TYPE_AUTO.

Referenced by ApiBase\dieBlocked(), doRetroactiveAutoblock(), getTargetAndType(), isAutoblocking(), and isHardblock().

◆ initFromRow()

Block::initFromRow (   $row)
protected

Given a database row from the ipblocks table, initialize member variables.

Parameters
stdClass$rowA row from the ipblocks table

Definition at line 459 of file Block.php.

References DB_REPLICA, isAutoblocking(), isHardblock(), User\newFromAnyId(), prevents(), setBlocker(), setTarget(), wfGetDB(), and wfTimestamp().

Referenced by newFromRow(), and newLoad().

◆ insert()

Block::insert (   $dbw = null)

Insert a block into the block table.

Will fail if there is a conflicting block (same name and options) already in the database.

Parameters
IDatabase | null$dbwIf you have one available
Returns
bool|array False on failure, assoc array on success: ('id' => block ID, 'autoIds' => array of autoblock IDs)

Definition at line 527 of file Block.php.

References $mId, $wgBlockDisablesLogin, DB_MASTER, doRetroactiveAutoblock(), getBlocker(), getDatabaseArray(), getSystemBlockType(), purgeExpired(), wfDebug(), and wfGetDB().

◆ isAutoblocking()

Block::isAutoblocking (   $x = null)
Parameters
null | bool$x
Returns
bool

Definition at line 1054 of file Block.php.

References getType(), isAutoblocking(), and wfSetVar().

Referenced by __construct(), doAutoblock(), doRetroactiveAutoblock(), equals(), getDatabaseArray(), initFromRow(), isAutoblocking(), and update().

◆ isExpired()

Block::isExpired ( )

Has the block expired?

Returns
bool

Definition at line 906 of file Block.php.

References $mExpiry, wfDebug(), and wfTimestampNow().

Referenced by deleteIfExpired().

◆ isHardblock()

Block::isHardblock (   $x = null)

Get/set whether the Block is a hardblock (affects logged-in users on a given IP/range)

Parameters
bool | null$x
Returns
bool

Definition at line 1041 of file Block.php.

References $isHardblock, getType(), isHardblock(), true, and wfSetVar().

Referenced by __construct(), chooseBlock(), equals(), getDatabaseArray(), initFromRow(), and isHardblock().

◆ isValid()

Block::isValid ( )

Is the block address valid (i.e.

not a null string?)

Returns
bool

Definition at line 921 of file Block.php.

References getTarget().

◆ isWhitelistedFromAutoblocks()

static Block::isWhitelistedFromAutoblocks (   $ip)
static

Checks whether a given IP is on the autoblock whitelist.

TODO: this probably belongs somewhere else, but not sure where...

Parameters
string$ipThe IP to check
Returns
bool

Definition at line 766 of file Block.php.

References $cache, $line, $lines, array(), as, DB_REPLICA, function, plain, wfDebug(), wfGetDB(), and wfMessage().

◆ newFromID()

static Block::newFromID (   $id)
static

Load a blocked user from their block id.

Parameters
int$idBlock id to search for
Returns
Block|null

Definition at line 184 of file Block.php.

References $dbr, $res, DB_REPLICA, getQueryInfo(), newFromRow(), and wfGetDB().

Referenced by User\getBlockFromCookieValue(), newFromTarget(), ApiUnblockTest\setUp(), BlockTest\testCrappyCrossWikiBlocks(), and BlockTest\testINewFromIDReturnsCorrectBlock().

◆ newFromRow()

static Block::newFromRow (   $row)
static

Create a new Block object from a database row.

Parameters
stdClass$rowRow from the ipblocks table
Returns
Block

Definition at line 491 of file Block.php.

References initFromRow().

Referenced by CleanupBlocks\execute(), getBlocksForIPList(), newFromID(), and newLoad().

◆ newFromTarget()

static Block::newFromTarget (   $specificTarget,
  $vagueTarget = null,
  $fromMaster = false 
)
static

Given a target and the target's type, get an existing Block object if possible.

Parameters
string | User | int$specificTargetA block target, which may be one of several types:
  • A user to block, in which case $target will be a User
  • An IP to block, in which case $target will be a User generated by using User::newFromName( $ip, false ) to turn off name validation
  • An IP range, in which case $target will be a String "123.123.123.123/18" etc
  • The ID of an existing block, in the format "#12345" (since pure numbers are valid usernames Calling this with a user, IP address or range will not select autoblocks, and will only select a block where the targets match exactly (so looking for blocks on 1.2.3.4 will not select 1.2.0.0/16 or even 1.2.3.4/32)
string | User | int | null$vagueTargetAs above, but we will search for any block which affects that target (so for an IP address, get ranges containing that IP; and also get any relevant autoblocks). Leave empty or blank to skip IP-based lookups.
bool$fromMasterWhether to use the DB_MASTER database
Returns
Block|null (null if no relevant block could be found). The target and type of the returned Block will refer to the actual block which was found, which might not be the same as the target you gave if you used $vagueTarget!

Definition at line 1174 of file Block.php.

References $target, $type, list, newFromID(), and parseTarget().

Referenced by BlockTest\addBlockForUser(), SpecialContributions\contributionsSub(), doAutoblock(), ApiBlockTest\doBlock(), SpecialUnblock\execute(), ApiBlock\execute(), ApiUnblock\execute(), User\getBlockedStatus(), ApiUnblockTest\getBlockFromParams(), Article\getRobotPolicy(), DeletedContributionsPage\getSubTitle(), User\isBlockedFromCreateAccount(), SpecialBlock\maybeAlterFormDefaults(), SpecialBlock\processForm(), EditPage\showIntro(), Article\showMissingArticle(), User\spreadBlock(), BlockTest\testBlockedUserCanNotCreateAccount(), BlockTest\testCrappyCrossWikiBlocks(), BlockTest\testDeprecatedConstructor(), BlockTest\testINewFromTargetReturnsCorrectBlock(), and BlockTest\testT31116NewFromTargetWithEmptyIp().

◆ newLoad()

Block::newLoad (   $vagueTarget = null)
protected

Load a block from the database which affects the already-set $this->target: 1) A block directly on the given user or IP 2) A rangeblock encompassing the given IP (smallest first) 3) An autoblock on the given IP.

Parameters
User | string | null$vagueTargetAlso search for blocks affecting this target. Doesn't make any sense to use TYPE_AUTO / TYPE_ID here. Leave blank to skip IP lookups.
Exceptions
MWException
Returns
bool Whether a relevant block was found

Definition at line 308 of file Block.php.

References $res, $target, $type, as, DB_MASTER, DB_REPLICA, getQueryInfo(), getRangeCond(), initFromRow(), list, LIST_OR, newFromRow(), parseTarget(), prevents(), string, type, TYPE_IP, TYPE_RANGE, TYPE_USER, and wfGetDB().

◆ parseTarget()

static Block::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().

Parameters
string | int | User | null$target
Returns
array [ User|String|null, Block::TYPE_ constant|null ]

Definition at line 1396 of file Block.php.

References $target, User\getName(), User\newFromName(), TYPE_AUTO, TYPE_IP, TYPE_RANGE, and TYPE_USER.

Referenced by BlockListPager\formatValue(), SpecialBlockList\getBlockListPager(), SpecialBlock\getTargetAndType(), newFromTarget(), newLoad(), SpecialBlock\setParameter(), and setTarget().

◆ prevents()

Block::prevents (   $action,
  $x = null 
)

Get/set whether the Block prevents a given action.

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 1071 of file Block.php.

References $res, $wgBlockDisablesLogin, User\isAllowed(), and wfSetVar().

Referenced by __construct(), chooseBlock(), doAutoblock(), equals(), getAutoblockUpdateArray(), getDatabaseArray(), initFromRow(), User\isBlocked(), User\isBlockedFromCreateAccount(), and newLoad().

◆ purgeExpired()

static Block::purgeExpired ( )
static

◆ selectFields()

static Block::selectFields ( )
static

Return the list of ipblocks fields that should be selected to create a new block.

Deprecated:
since 1.31, use self::getQueryInfo() instead.
Returns
array

Definition at line 208 of file Block.php.

References $wgActorTableSchemaMigrationStage, SCHEMA_COMPAT_READ_NEW, and wfDeprecated().

◆ setBlocker()

Block::setBlocker (   $user)

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

Parameters
User | string$userLocal User object or username string

Definition at line 1507 of file Block.php.

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

Referenced by __construct(), and initFromRow().

◆ setCookie()

Block::setCookie ( WebResponse  $response)

Set the 'BlockID' cookie to this block's ID and expiry time.

The cookie's expiry will be the same as the block's, to a maximum of 24 hours.

Since
1.29
Parameters
WebResponse$responseThe response on which to set the cookie.

Definition at line 1529 of file Block.php.

References $expiryTime, false, getCookieValue(), getExpiry(), WebResponse\setCookie(), and wfTimestamp().

◆ setTarget()

Block::setTarget (   $target)

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

Parameters
mixed$target

Definition at line 1491 of file Block.php.

References list, parseTarget(), and type.

Referenced by __construct(), and initFromRow().

◆ update()

Block::update ( )

Update a block in the DB with new parameters.

The ID field needs to be loaded first.

Returns
bool|array False on failure, array on success: ('id' => block ID, 'autoIds' => array of autoblock IDs)

Definition at line 595 of file Block.php.

References $mId, DB_MASTER, doRetroactiveAutoblock(), getAutoblockUpdateArray(), getDatabaseArray(), getId(), isAutoblocking(), wfDebug(), and wfGetDB().

◆ updateTimestamp()

Block::updateTimestamp ( )

Update the timestamp on autoblocks.

Definition at line 928 of file Block.php.

References DB_MASTER, getAutoblockExpiry(), wfGetDB(), and wfTimestamp().

Member Data Documentation

◆ $blocker

User Block::$blocker
private

Definition at line 71 of file Block.php.

Referenced by getBlocker(), getBy(), getByName(), and getPermissionsError().

◆ $forcedTargetID

int Block::$forcedTargetID
private

Hack for foreign blocking (CentralAuth)

Definition at line 65 of file Block.php.

Referenced by getDatabaseArray().

◆ $isAutoblocking

bool Block::$isAutoblocking
private

Definition at line 77 of file Block.php.

◆ $isHardblock

bool Block::$isHardblock
private

Definition at line 74 of file Block.php.

Referenced by isHardblock().

◆ $mAuto

bool Block::$mAuto

Definition at line 35 of file Block.php.

Referenced by getDatabaseArray().

◆ $mBlockEmail

bool Block::$mBlockEmail
private

Definition at line 53 of file Block.php.

◆ $mCreateAccount

bool Block::$mCreateAccount
private

Definition at line 59 of file Block.php.

◆ $mDisableUsertalk

bool Block::$mDisableUsertalk
private

Definition at line 56 of file Block.php.

◆ $mExpiry

string Block::$mExpiry

Definition at line 38 of file Block.php.

Referenced by getExpiry(), and isExpired().

◆ $mFromMaster

bool Block::$mFromMaster
private

Definition at line 50 of file Block.php.

◆ $mHideName

bool Block::$mHideName

Definition at line 41 of file Block.php.

Referenced by doAutoblock().

◆ $mId

int Block::$mId
private

Definition at line 47 of file Block.php.

Referenced by doAutoblock(), getId(), insert(), and update().

◆ $mParentBlockId

int Block::$mParentBlockId

Definition at line 44 of file Block.php.

Referenced by getDatabaseArray().

◆ $mReason

string Block::$mReason

Definition at line 29 of file Block.php.

Referenced by getPermissionsError().

◆ $mTimestamp

string Block::$mTimestamp

Definition at line 32 of file Block.php.

◆ $systemBlockType

string null Block::$systemBlockType
private

Definition at line 80 of file Block.php.

Referenced by getPermissionsError(), and getSystemBlockType().

◆ $target

User string Block::$target
private

Definition at line 62 of file Block.php.

Referenced by defaultRetroactiveAutoblock(), getTarget(), newFromTarget(), newLoad(), and parseTarget().

◆ $type

int Block::$type
private

Block::TYPE_ constant.

Can only be USER, IP or RANGE internally

Definition at line 68 of file Block.php.

Referenced by getType(), newFromTarget(), and newLoad().

◆ TYPE_AUTO

◆ TYPE_ID

const Block::TYPE_ID = 5

Definition at line 87 of file Block.php.

Referenced by SpecialUnblock\execute(), and SpecialBlockList\getBlockListPager().

◆ TYPE_IP

◆ TYPE_RANGE

◆ TYPE_USER


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