MediaWiki REL1_35
|
A DatabaseBlock (unlike a SystemBlock) is stored in the database, may give rise to autoblocks and may be tracked with cookies. More...
Public Member Functions | ||||
__construct (array $options=[]) | ||||
Create a new block with specified option parameters on a user, IP or IP range. | ||||
appliesToNamespace ( $ns) | ||||
Checks if a block applies to a particular namespace.
| ||||
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).
| ||||
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).
| ||||
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 (DatabaseBlock $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. | ||||
getId () | ||||
Get the block ID.
| ||||
getIdentifier () | ||||
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.
| ||||
getParentBlockId () | ||||
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. | ||||
getReason () | ||||
Get the reason given for creating the block, as a string.Deprecated, since this gives the caller no control over the language or format, and no access to the comment's data.
| ||||
getRedactedName () | ||||
Get the block name, but with autoblocked IPs hidden as per standard privacy policy. | ||||
getRestrictions () | ||||
Get Restrictions. | ||||
getType () | ||||
Get the type of target for this particular block.
| ||||
insert (IDatabase $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) | ||||
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. | ||||
setRestrictions (array $restrictions) | ||||
Set Restrictions. | ||||
shouldTrackWithCookie ( $isAnon) | ||||
update () | ||||
Update a block in the DB with new parameters. | ||||
updateTimestamp () | ||||
Update the timestamp on autoblocks. | ||||
Public Member Functions inherited from MediaWiki\Block\AbstractBlock | ||||
appliesToPasswordReset () | ||||
Check if the block prevents a user from resetting their password. | ||||
appliesToRight ( $right) | ||||
Determine whether the block prevents a given right. | ||||
appliesToUsertalk (Title $usertalk=null) | ||||
Determine whether the block allows the user to edit their own user talk page. | ||||
getBlockErrorParams (IContextSource $context) | ||||
Get block information used in different block error messages. | ||||
getExpiry () | ||||
Get the block expiry time. | ||||
getHideName () | ||||
Get whether the block hides the target's username. | ||||
getPermissionsError (IContextSource $context) | ||||
Get the key and parameters for the corresponding error message. | ||||
getReasonComment () | ||||
Get the reason 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. | ||||
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. | ||||
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. | ||||
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 block from the block id. | |
static | newFromRow ( $row) |
Create a new DatabaseBlock 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 | newListFromTarget ( $specificTarget, $vagueTarget=null, $fromMaster=false) |
This is similar to DatabaseBlock::newFromTarget, but it returns all the relevant blocks. | |
static | purgeExpired () |
Purge expired blocks from the ipblocks table. | |
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 | |
bool | $mAuto |
int | $mParentBlockId |
Public Attributes inherited from MediaWiki\Block\AbstractBlock | |
string | $mExpiry = '' |
bool | $mHideName = false |
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. | |
Static Protected Member Functions | |
static | chooseMostSpecificBlock (array $blocks) |
Choose the most specific block from some combination of user, IP and IP range blocks. | |
static | defaultRetroactiveAutoblock (DatabaseBlock $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. | |
static | newLoad ( $specificTarget, $specificType, $fromMaster, $vagueTarget=null) |
Load blocks from the database which target the specific target exactly, or which cover the vague target. | |
Private Member Functions | |
findRestriction ( $type, $value) | |
Find Restriction by type and value. | |
getBlockRestrictionStore () | |
Get a BlockRestrictionStore instance. | |
setId ( $blockId) | |
Set the block ID. | |
Private Attributes | |
User | $blocker |
int | $forcedTargetID |
Hack for foreign blocking (CentralAuth) | |
bool | $isAutoblocking |
bool | $isHardblock |
bool | $mFromMaster |
int | $mId |
Restriction[] | $restrictions |
Additional Inherited Members | |
Protected Attributes inherited from MediaWiki\Block\AbstractBlock | |
bool | $allowUsertalk = false |
bool | $blockCreateAccount = false |
bool | $isSitewide = true |
bool | $mBlockEmail = false |
$mReason | |
CommentStoreComment | $reason |
User string null | $target |
int null | $type |
AbstractBlock::TYPE_ constant. | |
A DatabaseBlock (unlike a SystemBlock) is stored in the database, may give rise to autoblocks and may be tracked with cookies.
Such blocks are more customizable than system blocks: they may be hardblocks, and they may be sitewide or partial.
Definition at line 54 of file DatabaseBlock.php.
MediaWiki\Block\DatabaseBlock::__construct | ( | array | $options = [] | ) |
Create a new block with specified option parameters on a user, IP or IP range.
array | $options | Parameters of the block, with options supported by AbstractBlock::__construct , and also:
|
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 108 of file DatabaseBlock.php.
References DB_REPLICA, MediaWiki\Block\DatabaseBlock\isAutoblocking(), MediaWiki\Block\AbstractBlock\isCreateAccountBlocked(), MediaWiki\Block\AbstractBlock\isEmailBlocked(), MediaWiki\Block\DatabaseBlock\isHardblock(), MediaWiki\Block\AbstractBlock\isSitewide(), MediaWiki\Block\AbstractBlock\isUsertalkEditAllowed(), User\newFromId(), MediaWiki\Block\DatabaseBlock\setBlocker(), MediaWiki\Block\AbstractBlock\setExpiry(), and wfGetDB().
MediaWiki\Block\DatabaseBlock::appliesToNamespace | ( | $ns | ) |
Checks if a block applies to a particular namespace.
int | $ns |
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1509 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\findRestriction(), and MediaWiki\Block\AbstractBlock\isSitewide().
MediaWiki\Block\DatabaseBlock::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).
int | $pageId |
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1527 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\findRestriction(), and MediaWiki\Block\AbstractBlock\isSitewide().
MediaWiki\Block\DatabaseBlock::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).
Title | $title |
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1491 of file DatabaseBlock.php.
References $title, MediaWiki\Block\DatabaseBlock\getRestrictions(), and MediaWiki\Block\AbstractBlock\isSitewide().
|
static |
From a list of multiple blocks, find the most exact and strongest block.
The logic for finding the "best" block is:
array | $blocks | Array of DatabaseBlock objects |
array | $ipChain | List 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-cdn, ...) |
MWException |
Definition at line 1285 of file DatabaseBlock.php.
References MediaWiki\Block\AbstractBlock\appliesToRight(), MediaWiki\Block\DatabaseBlock\isHardblock(), and wfDeprecated().
|
staticprotected |
Choose the most specific block from some combination of user, IP and IP range blocks.
Decreasing order of specificity: user > IP > narrower IP range > wider IP range. A range that encompasses one IP address is ranked equally to a singe IP.
Note that DatabaseBlock::chooseBlock chooses blocks in a different way.
This is refactored out from DatabaseBlock::newLoad.
DatabaseBlock[] | $blocks | These should not include autoblocks or ID blocks |
Definition at line 352 of file DatabaseBlock.php.
References MediaWiki\Block\AbstractBlock\$target.
Referenced by MediaWiki\Block\DatabaseBlock\newFromTarget().
|
static |
Unset the 'BlockID' cookie.
WebResponse | $response | The response on which to unset the cookie. |
Definition at line 1410 of file DatabaseBlock.php.
References MediaWiki\MediaWikiServices\getInstance(), and wfDeprecated().
|
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.
DatabaseBlock | $block | |
array | &$blockIds |
Definition at line 729 of file DatabaseBlock.php.
References $dbr, $res, MediaWiki\Block\AbstractBlock\$target, $wgPutIPinRC, DB_REPLICA, MediaWiki\Block\DatabaseBlock\doAutoblock(), MediaWiki\Block\AbstractBlock\getTarget(), MediaWiki\Block\DatabaseBlock\getType(), wfDebug(), and wfGetDB().
Referenced by MediaWiki\Block\DatabaseBlock\doRetroactiveAutoblock().
MediaWiki\Block\DatabaseBlock::delete | ( | ) |
Delete the row from the IP blocks table.
MWException |
Definition at line 489 of file DatabaseBlock.php.
References DB_MASTER, MediaWiki\Block\DatabaseBlock\getBlockRestrictionStore(), MediaWiki\Block\DatabaseBlock\getId(), wfGetDB(), and wfReadOnly().
MediaWiki\Block\DatabaseBlock::deleteIfExpired | ( | ) |
Check if a block has expired.
Delete it if it is.
Definition at line 907 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\isExpired(), wfDebug(), and wfDeprecated().
MediaWiki\Block\DatabaseBlock::doAutoblock | ( | $autoblockIP | ) |
Autoblocks the given IP, referring to this block.
string | $autoblockIP | The IP to autoblock. |
Definition at line 828 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\$mId, MediaWiki\Block\DatabaseBlock\getBlocker(), MediaWiki\Block\AbstractBlock\getExpiry(), MediaWiki\Block\AbstractBlock\getHideName(), MediaWiki\Block\AbstractBlock\getReasonComment(), MediaWiki\Block\DatabaseBlock\getRestrictions(), MediaWiki\Block\AbstractBlock\getTarget(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), MediaWiki\Block\AbstractBlock\isCreateAccountBlocked(), MediaWiki\Block\AbstractBlock\isSitewide(), MediaWiki\Block\AbstractBlock\isUsertalkEditAllowed(), MediaWiki\Block\DatabaseBlock\newFromTarget(), Hooks\runner(), wfDebug(), wfMessage(), and wfTimestampNow().
Referenced by MediaWiki\Block\DatabaseBlock\defaultRetroactiveAutoblock().
|
protected |
Retroactively autoblocks the last IP used by the user (if it is a user) blocked by this block.
Definition at line 707 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\defaultRetroactiveAutoblock(), MediaWiki\Block\AbstractBlock\getTarget(), MediaWiki\Block\DatabaseBlock\getType(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), Hooks\runner(), and wfDebug().
Referenced by MediaWiki\Block\DatabaseBlock\insert(), and MediaWiki\Block\DatabaseBlock\update().
MediaWiki\Block\DatabaseBlock::equals | ( | DatabaseBlock | $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
DatabaseBlock | $block |
Definition at line 218 of file DatabaseBlock.php.
References MediaWiki\Block\AbstractBlock\getExpiry(), MediaWiki\Block\AbstractBlock\getHideName(), MediaWiki\Block\AbstractBlock\getReasonComment(), MediaWiki\Block\DatabaseBlock\getRestrictions(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), MediaWiki\Block\AbstractBlock\isCreateAccountBlocked(), MediaWiki\Block\AbstractBlock\isEmailBlocked(), MediaWiki\Block\DatabaseBlock\isHardblock(), MediaWiki\Block\AbstractBlock\isSitewide(), and MediaWiki\Block\AbstractBlock\isUsertalkEditAllowed().
|
private |
Find Restriction by type and value.
string | $type | |
int | $value |
Definition at line 1549 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\$restrictions, MediaWiki\Block\AbstractBlock\$type, and MediaWiki\Block\DatabaseBlock\getRestrictions().
Referenced by MediaWiki\Block\DatabaseBlock\appliesToNamespace(), and MediaWiki\Block\DatabaseBlock\appliesToPage().
MediaWiki\Block\DatabaseBlock::fromMaster | ( | $x = null | ) |
Get/set a flag determining whether the master is used for reads.
bool | null | $x |
Definition at line 1047 of file DatabaseBlock.php.
References wfDeprecated(), and wfSetVar().
|
static |
Get a timestamp of the expiry for autoblocks.
string | int | $timestamp |
Definition at line 1102 of file DatabaseBlock.php.
References $wgAutoblockExpiry, and wfTimestamp().
|
protected |
IDatabase | $dbw |
Definition at line 691 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\getBlocker(), MediaWiki\Block\AbstractBlock\getHideName(), MediaWiki\Block\AbstractBlock\getReasonComment(), CommentStore\getStore(), MediaWiki\Block\AbstractBlock\isCreateAccountBlocked(), MediaWiki\Block\AbstractBlock\isSitewide(), and MediaWiki\Block\AbstractBlock\isUsertalkEditAllowed().
Referenced by MediaWiki\Block\DatabaseBlock\update().
MediaWiki\Block\DatabaseBlock::getBlocker | ( | ) |
Get the user who implemented this block.
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1611 of file DatabaseBlock.php.
Referenced by MediaWiki\Block\DatabaseBlock\doAutoblock(), MediaWiki\Block\DatabaseBlock\getAutoblockUpdateArray(), MediaWiki\Block\DatabaseBlock\getDatabaseArray(), and MediaWiki\Block\DatabaseBlock\insert().
|
private |
Get a BlockRestrictionStore instance.
Definition at line 1588 of file DatabaseBlock.php.
Referenced by MediaWiki\Block\DatabaseBlock\delete(), MediaWiki\Block\DatabaseBlock\getRestrictions(), MediaWiki\Block\DatabaseBlock\insert(), MediaWiki\Block\DatabaseBlock\setId(), and MediaWiki\Block\DatabaseBlock\update().
|
static |
Get all blocks that match any IP from an array of IP addresses.
array | $ipChain | List of IPs (strings), usually retrieved from the X-Forwarded-For header of the request |
bool | $isAnon | Exclude anonymous-only blocks if false |
bool | $fromMaster | Whether to query the master or replica DB |
Definition at line 1202 of file DatabaseBlock.php.
References DB_MASTER, DB_REPLICA, MediaWiki\MediaWikiServices\getInstance(), MediaWiki\Block\DatabaseBlock\getQueryInfo(), MediaWiki\Block\DatabaseBlock\getRangeCond(), LIST_OR, MediaWiki\Block\DatabaseBlock\newFromRow(), and wfGetDB().
Referenced by MediaWiki\Block\BlockManager\getAdditionalIpBlocks().
MediaWiki\Block\DatabaseBlock::getBy | ( | ) |
Get the user id of the blocking sysop.
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1595 of file DatabaseBlock.php.
MediaWiki\Block\DatabaseBlock::getByName | ( | ) |
Get the username of the blocking sysop.
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1602 of file DatabaseBlock.php.
MediaWiki\Block\DatabaseBlock::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.
Definition at line 1425 of file DatabaseBlock.php.
References MediaWiki\MediaWikiServices\getInstance(), and wfDeprecated().
|
protected |
Get an array suitable for passing to $dbw->insert() or $dbw->update()
IDatabase | $dbw |
Definition at line 656 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\$forcedTargetID, MediaWiki\Block\DatabaseBlock\$mParentBlockId, Wikimedia\Rdbms\IDatabase\encodeExpiry(), MediaWiki\Block\DatabaseBlock\getBlocker(), MediaWiki\Block\AbstractBlock\getExpiry(), MediaWiki\Block\AbstractBlock\getHideName(), User\getId(), MediaWiki\Block\DatabaseBlock\getRangeEnd(), MediaWiki\Block\DatabaseBlock\getRangeStart(), MediaWiki\Block\AbstractBlock\getReasonComment(), CommentStore\getStore(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), MediaWiki\Block\AbstractBlock\isCreateAccountBlocked(), MediaWiki\Block\AbstractBlock\isEmailBlocked(), MediaWiki\Block\DatabaseBlock\isHardblock(), MediaWiki\Block\AbstractBlock\isSitewide(), MediaWiki\Block\AbstractBlock\isUsertalkEditAllowed(), and Wikimedia\Rdbms\IDatabase\timestamp().
Referenced by MediaWiki\Block\DatabaseBlock\insert(), and MediaWiki\Block\DatabaseBlock\update().
MediaWiki\Block\DatabaseBlock::getId | ( | ) |
Get the block ID.
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1010 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\$mId.
Referenced by MediaWiki\Block\DatabaseBlock\delete(), MediaWiki\Block\BlockManager\getCookieValue(), MediaWiki\Block\DatabaseBlock\getIdentifier(), and MediaWiki\Block\DatabaseBlock\update().
MediaWiki\Block\DatabaseBlock::getIdentifier | ( | ) |
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.
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1447 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\getId().
|
static |
Get the stored ID from the 'BlockID' cookie.
The cookie's value is usually a combination of the ID and a HMAC (see DatabaseBlock::setCookie), but will sometimes only be the ID.
string | $cookieValue | The string in which to find the ID. |
Definition at line 1439 of file DatabaseBlock.php.
References MediaWiki\MediaWikiServices\getInstance(), and wfDeprecated().
|
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.
string | $hex | Hexadecimal IP representation |
Definition at line 427 of file DatabaseBlock.php.
References $wgBlockCIDRLimit.
Referenced by MediaWiki\Block\DatabaseBlock\getRangeCond().
MediaWiki\Block\DatabaseBlock::getParentBlockId | ( | ) |
Definition at line 1036 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\$mParentBlockId.
|
static |
Return the tables, fields, and join conditions to be selected to create a new block object.
$table
to IDatabase->select()
$vars
to IDatabase->select()
$join_conds
to IDatabase->select()
Definition at line 187 of file DatabaseBlock.php.
References CommentStore\getStore().
Referenced by MediaWiki\Block\DatabaseBlock\getBlocksForIPList(), MediaWiki\Block\DatabaseBlock\newFromID(), and MediaWiki\Block\DatabaseBlock\newLoad().
|
static |
Get a set of SQL conditions which will select rangeblocks encompassing a given range.
string | $start | Hexadecimal IP representation |
string | null | $end | Hexadecimal IP representation, or null to use $start = $end |
Definition at line 394 of file DatabaseBlock.php.
References $dbr, DB_REPLICA, MediaWiki\Block\DatabaseBlock\getIpFragment(), LIST_AND, and wfGetDB().
Referenced by MediaWiki\Block\DatabaseBlock\getBlocksForIPList(), and MediaWiki\Block\DatabaseBlock\newLoad().
MediaWiki\Block\DatabaseBlock::getRangeEnd | ( | ) |
Get the IP address at the end of the range in Hex form.
MWException |
Definition at line 982 of file DatabaseBlock.php.
References MediaWiki\Block\AbstractBlock\TYPE_IP, MediaWiki\Block\AbstractBlock\TYPE_RANGE, and MediaWiki\Block\AbstractBlock\TYPE_USER.
Referenced by MediaWiki\Block\DatabaseBlock\getDatabaseArray().
MediaWiki\Block\DatabaseBlock::getRangeStart | ( | ) |
Get the IP address at the start of the range in Hex form.
MWException |
Definition at line 963 of file DatabaseBlock.php.
References MediaWiki\Block\AbstractBlock\TYPE_IP, MediaWiki\Block\AbstractBlock\TYPE_RANGE, and MediaWiki\Block\AbstractBlock\TYPE_USER.
Referenced by MediaWiki\Block\DatabaseBlock\getDatabaseArray().
MediaWiki\Block\DatabaseBlock::getReason | ( | ) |
Get the reason given for creating the block, as a string.Deprecated, since this gives the caller no control over the language or format, and no access to the comment's data.
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1000 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\getType().
MediaWiki\Block\DatabaseBlock::getRedactedName | ( | ) |
Get the block name, but with autoblocked IPs hidden as per standard privacy policy.
Definition at line 1084 of file DatabaseBlock.php.
References MediaWiki\Block\AbstractBlock\getTarget(), and wfMessage().
MediaWiki\Block\DatabaseBlock::getRestrictions | ( | ) |
Get Restrictions.
Getting the restrictions will perform a database query if the restrictions are not already loaded.
Definition at line 1460 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\$restrictions, and MediaWiki\Block\DatabaseBlock\getBlockRestrictionStore().
Referenced by MediaWiki\Block\DatabaseBlock\appliesToTitle(), MediaWiki\Block\DatabaseBlock\doAutoblock(), MediaWiki\Block\DatabaseBlock\equals(), and MediaWiki\Block\DatabaseBlock\findRestriction().
MediaWiki\Block\DatabaseBlock::getType | ( | ) |
Get the type of target for this particular block.
Autoblocks have whichever type corresponds to their target, so to detect if a block is an autoblock, we have to check the mAuto property instead.
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1384 of file DatabaseBlock.php.
References MediaWiki\Block\AbstractBlock\TYPE_AUTO.
Referenced by MediaWiki\Block\DatabaseBlock\defaultRetroactiveAutoblock(), MediaWiki\Block\DatabaseBlock\doRetroactiveAutoblock(), MediaWiki\Block\DatabaseBlock\getReason(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), MediaWiki\Block\DatabaseBlock\isHardblock(), SpecialBlock\maybeAlterFormDefaults(), MediaWiki\Block\BlockManager\shouldApplyCookieBlock(), and MediaWiki\Block\DatabaseBlock\shouldTrackWithCookie().
|
protected |
Given a database row from the ipblocks table, initialize member variables.
stdClass | $row | A row from the ipblocks table |
Definition at line 441 of file DatabaseBlock.php.
References DB_REPLICA, CommentStore\getStore(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), MediaWiki\Block\AbstractBlock\isCreateAccountBlocked(), MediaWiki\Block\AbstractBlock\isEmailBlocked(), MediaWiki\Block\DatabaseBlock\isHardblock(), MediaWiki\Block\AbstractBlock\isSitewide(), MediaWiki\Block\AbstractBlock\isUsertalkEditAllowed(), User\newFromAnyId(), MediaWiki\Block\DatabaseBlock\setBlocker(), MediaWiki\Block\AbstractBlock\setExpiry(), MediaWiki\Block\AbstractBlock\setHideName(), MediaWiki\Block\AbstractBlock\setReason(), MediaWiki\Block\AbstractBlock\setTarget(), MediaWiki\Block\AbstractBlock\setTimestamp(), wfGetDB(), and wfTimestamp().
Referenced by MediaWiki\Block\DatabaseBlock\newFromRow().
MediaWiki\Block\DatabaseBlock::insert | ( | IDatabase | $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.
IDatabase | null | $dbw | If you have one available |
Definition at line 519 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\$mId, $wgBlockDisablesLogin, DB_MASTER, MediaWiki\Block\DatabaseBlock\doRetroactiveAutoblock(), MediaWiki\Block\DatabaseBlock\getBlocker(), MediaWiki\Block\DatabaseBlock\getBlockRestrictionStore(), MediaWiki\Block\DatabaseBlock\getDatabaseArray(), MediaWiki\Block\DatabaseBlock\purgeExpired(), MediaWiki\Block\DatabaseBlock\setId(), wfDebug(), and wfGetDB().
MediaWiki\Block\DatabaseBlock::isAutoblocking | ( | $x = null | ) |
null | bool | $x |
Definition at line 1070 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\getType(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), and wfSetVar().
Referenced by MediaWiki\Block\DatabaseBlock\__construct(), MediaWiki\Block\DatabaseBlock\doAutoblock(), MediaWiki\Block\DatabaseBlock\doRetroactiveAutoblock(), MediaWiki\Block\DatabaseBlock\equals(), MediaWiki\Block\DatabaseBlock\getDatabaseArray(), MediaWiki\Block\DatabaseBlock\initFromRow(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), MediaWiki\Block\BlockManager\shouldApplyCookieBlock(), MediaWiki\Block\DatabaseBlock\shouldTrackWithCookie(), and MediaWiki\Block\DatabaseBlock\update().
MediaWiki\Block\DatabaseBlock::isExpired | ( | ) |
Has the block expired?
Definition at line 925 of file DatabaseBlock.php.
References MediaWiki\Block\AbstractBlock\getExpiry(), wfDebug(), and wfTimestampNow().
Referenced by MediaWiki\Block\DatabaseBlock\deleteIfExpired(), and MediaWiki\Block\BlockManager\shouldApplyCookieBlock().
MediaWiki\Block\DatabaseBlock::isHardblock | ( | $x = null | ) |
Get/set whether the block is a hardblock (affects logged-in users on a given IP/range)
bool | null | $x |
Definition at line 1057 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\$isHardblock, MediaWiki\Block\DatabaseBlock\getType(), MediaWiki\Block\DatabaseBlock\isHardblock(), true, and wfSetVar().
Referenced by MediaWiki\Block\DatabaseBlock\__construct(), MediaWiki\Block\DatabaseBlock\chooseBlock(), MediaWiki\Block\DatabaseBlock\equals(), MediaWiki\Block\DatabaseBlock\getDatabaseArray(), MediaWiki\Block\DatabaseBlock\initFromRow(), and MediaWiki\Block\DatabaseBlock\isHardblock().
|
static |
Checks whether a given IP is on the autoblock whitelist.
TODO: this probably belongs somewhere else, but not sure where...
string | $ip | The IP to check |
Definition at line 782 of file DatabaseBlock.php.
References $cache, $line, $lines, DB_REPLICA, MediaWiki\MediaWikiServices\getInstance(), wfDebug(), wfGetDB(), and wfMessage().
|
static |
Load a block from the block id.
int | $id | id to search for |
Definition at line 160 of file DatabaseBlock.php.
References $dbr, $res, DB_REPLICA, MediaWiki\Block\DatabaseBlock\getQueryInfo(), MediaWiki\Block\DatabaseBlock\newFromRow(), and wfGetDB().
Referenced by MediaWiki\Block\BlockManager\getBlockFromCookieValue(), and MediaWiki\Block\DatabaseBlock\newListFromTarget().
|
static |
Create a new DatabaseBlock object from a database row.
stdClass | $row | Row from the ipblocks table |
Definition at line 477 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\initFromRow().
Referenced by MediaWiki\Block\DatabaseBlock\getBlocksForIPList(), MediaWiki\Block\DatabaseBlock\newFromID(), and MediaWiki\Block\DatabaseBlock\newLoad().
|
static |
Given a target and the target's type, get an existing block object if possible.
string | User | int | null | $specificTarget | A block target, which may be one of several types:
|
string | User | int | null | $vagueTarget | As 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 | $fromMaster | Whether to use the DB_MASTER database |
Definition at line 1155 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\chooseMostSpecificBlock(), and MediaWiki\Block\DatabaseBlock\newListFromTarget().
Referenced by MediaWiki\Block\DatabaseBlock\doAutoblock().
|
static |
This is similar to DatabaseBlock::newFromTarget, but it returns all the relevant blocks.
string | User | int | null | $specificTarget | |
string | User | int | null | $vagueTarget | |
bool | $fromMaster |
Definition at line 1169 of file DatabaseBlock.php.
References MediaWiki\Block\AbstractBlock\$target, MediaWiki\Block\AbstractBlock\$type, MediaWiki\Block\DatabaseBlock\newFromID(), MediaWiki\Block\DatabaseBlock\newLoad(), and MediaWiki\Block\AbstractBlock\parseTarget().
Referenced by MediaWiki\Block\BlockManager\getUserBlock(), and MediaWiki\Block\DatabaseBlock\newFromTarget().
|
staticprotected |
Load blocks from the database which target the specific target exactly, or which cover the vague target.
User | string | null | $specificTarget | |
int | null | $specificType | |
bool | $fromMaster | |
User | string | null | $vagueTarget | Also search for blocks affecting this target. Doesn't make any sense to use TYPE_AUTO / TYPE_ID here. Leave blank to skip IP lookups. |
MWException |
Definition at line 252 of file DatabaseBlock.php.
References $res, MediaWiki\Block\AbstractBlock\$target, MediaWiki\Block\AbstractBlock\$type, DB_MASTER, DB_REPLICA, MediaWiki\Block\DatabaseBlock\getQueryInfo(), MediaWiki\Block\DatabaseBlock\getRangeCond(), LIST_OR, MediaWiki\Block\DatabaseBlock\newFromRow(), MediaWiki\Block\AbstractBlock\parseTarget(), MediaWiki\Block\AbstractBlock\TYPE_IP, MediaWiki\Block\AbstractBlock\TYPE_RANGE, MediaWiki\Block\AbstractBlock\TYPE_USER, and wfGetDB().
Referenced by MediaWiki\Block\DatabaseBlock\newListFromTarget().
|
static |
Purge expired blocks from the ipblocks table.
Definition at line 1111 of file DatabaseBlock.php.
References Wikimedia\Rdbms\IDatabase\addQuotes(), DB_MASTER, Wikimedia\Rdbms\IDatabase\delete(), MediaWiki\MediaWikiServices\getInstance(), Wikimedia\Rdbms\IDatabase\selectFieldValues(), Wikimedia\Rdbms\IDatabase\timestamp(), wfGetDB(), and wfReadOnly().
Referenced by MediaWiki\Block\DatabaseBlock\insert().
MediaWiki\Block\DatabaseBlock::setBlocker | ( | $user | ) |
Set the user who implemented (or will implement) this block.
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1620 of file DatabaseBlock.php.
References User\isUsableName(), and User\newFromName().
Referenced by MediaWiki\Block\DatabaseBlock\__construct(), and MediaWiki\Block\DatabaseBlock\initFromRow().
MediaWiki\Block\DatabaseBlock::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.
WebResponse | $response | The response on which to set the cookie. |
Definition at line 1398 of file DatabaseBlock.php.
References MediaWiki\MediaWikiServices\getInstance(), and wfDeprecated().
|
private |
Set the block ID.
int | $blockId |
Definition at line 1020 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\getBlockRestrictionStore().
Referenced by MediaWiki\Block\DatabaseBlock\insert().
MediaWiki\Block\DatabaseBlock::setRestrictions | ( | array | $restrictions | ) |
Set Restrictions.
Restriction[] | $restrictions |
Definition at line 1480 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\$restrictions.
MediaWiki\Block\DatabaseBlock::shouldTrackWithCookie | ( | $isAnon | ) |
bool | $isAnon | The user is logged out |
Reimplemented from MediaWiki\Block\AbstractBlock.
Definition at line 1569 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\getType(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), MediaWiki\Block\AbstractBlock\TYPE_IP, MediaWiki\Block\AbstractBlock\TYPE_RANGE, MediaWiki\Block\AbstractBlock\TYPE_USER, and wfDeprecated().
MediaWiki\Block\DatabaseBlock::update | ( | ) |
Update a block in the DB with new parameters.
The ID field needs to be loaded first.
Definition at line 593 of file DatabaseBlock.php.
References MediaWiki\Block\DatabaseBlock\$mId, $success, DB_MASTER, MediaWiki\Block\DatabaseBlock\doRetroactiveAutoblock(), MediaWiki\Block\DatabaseBlock\getAutoblockUpdateArray(), MediaWiki\Block\DatabaseBlock\getBlockRestrictionStore(), MediaWiki\Block\DatabaseBlock\getDatabaseArray(), MediaWiki\Block\DatabaseBlock\getId(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), wfDebug(), and wfGetDB().
MediaWiki\Block\DatabaseBlock::updateTimestamp | ( | ) |
Update the timestamp on autoblocks.
Definition at line 939 of file DatabaseBlock.php.
References DB_MASTER, MediaWiki\Block\AbstractBlock\getTimestamp(), MediaWiki\Block\AbstractBlock\setExpiry(), MediaWiki\Block\AbstractBlock\setTimestamp(), wfGetDB(), and wfTimestamp().
|
private |
Definition at line 86 of file DatabaseBlock.php.
|
private |
Hack for foreign blocking (CentralAuth)
Definition at line 74 of file DatabaseBlock.php.
Referenced by MediaWiki\Block\DatabaseBlock\getDatabaseArray().
|
private |
Definition at line 80 of file DatabaseBlock.php.
|
private |
Definition at line 77 of file DatabaseBlock.php.
Referenced by MediaWiki\Block\DatabaseBlock\isHardblock().
bool MediaWiki\Block\DatabaseBlock::$mAuto |
Definition at line 59 of file DatabaseBlock.php.
|
private |
Definition at line 71 of file DatabaseBlock.php.
|
private |
Definition at line 68 of file DatabaseBlock.php.
Referenced by MediaWiki\Block\DatabaseBlock\doAutoblock(), MediaWiki\Block\DatabaseBlock\getId(), MediaWiki\Block\DatabaseBlock\insert(), and MediaWiki\Block\DatabaseBlock\update().
int MediaWiki\Block\DatabaseBlock::$mParentBlockId |
Definition at line 65 of file DatabaseBlock.php.
Referenced by MediaWiki\Block\DatabaseBlock\getDatabaseArray(), and MediaWiki\Block\DatabaseBlock\getParentBlockId().
|
private |
Definition at line 83 of file DatabaseBlock.php.
Referenced by MediaWiki\Block\DatabaseBlock\findRestriction(), MediaWiki\Block\DatabaseBlock\getRestrictions(), and MediaWiki\Block\DatabaseBlock\setRestrictions().