MediaWiki master
|
Public Member Functions | |
__construct (ServiceOptions $options, LoggerInterface $logger, ActorStoreFactory $actorStoreFactory, BlockRestrictionStore $blockRestrictionStore, CommentStore $commentStore, HookContainer $hookContainer, IConnectionProvider $dbProvider, ReadOnlyMode $readOnlyMode, UserFactory $userFactory, TempUserConfig $tempUserConfig, BlockUtils $blockUtils, AutoblockExemptionList $autoblockExemptionList, $wikiId=DatabaseBlock::LOCAL) | |
getReadStage () | |
Get the read stage of the block_target migration. | |
getWriteStage () | |
Get the write stage of the block_target migration. | |
Public Attributes | |
const | CONSTRUCTOR_OPTIONS |
const | SCHEMA_BLOCK = 'block' |
The new schema. | |
const | SCHEMA_CURRENT = 'current' |
The schema currently selected by the read stage. | |
const | SCHEMA_IPBLOCKS = 'ipblocks' |
The old schema. | |
Database read methods | |
newFromID ( $id) | |
Load a block from the block ID. | |
getQueryInfo ( $schema=self::SCHEMA_BLOCK) | |
Return the tables, fields, and join conditions to be selected to create a new block object. | |
getRangeCond ( $start, $end, $schema=self::SCHEMA_BLOCK) | |
Get a set of SQL conditions which select range blocks encompassing a given range. | |
newFromRow (IReadableDatabase $db, $row) | |
Create a new DatabaseBlock object from a database row. | |
newFromTarget ( $specificTarget, $vagueTarget=null, $fromPrimary=false) | |
Given a target and the target's type, get an existing block object if possible. | |
newListFromTarget ( $specificTarget, $vagueTarget=null, $fromPrimary=false) | |
This is similar to DatabaseBlockStore::newFromTarget, but it returns all the relevant blocks. | |
newListFromIPs (array $addresses, $applySoftBlocks, $fromPrimary=false) | |
Get all blocks that match any IP from an array of IP addresses. | |
newListFromConds ( $conds, $fromPrimary=false, $includeExpired=false) | |
Construct an array of blocks from database conditions. | |
Database write methods | |
purgeExpiredBlocks () | |
Delete expired blocks from the ipblocks table. | |
deleteBlocksMatchingConds (array $conds, $limit=null) | |
Delete all blocks matching the given conditions. | |
insertBlock (DatabaseBlock $block, $expectedTargetCount=0) | |
Insert a block into the block table. | |
updateBlock (DatabaseBlock $block) | |
Update a block in the DB with new parameters. | |
updateTarget (DatabaseBlock $block, $newTarget) | |
Update the target in the specified object and in the database. | |
deleteBlock (DatabaseBlock $block) | |
Delete a DatabaseBlock from the database. | |
doAutoblock (DatabaseBlock $parentBlock, $autoblockIP) | |
Autoblocks the given IP, referring to the specified block. | |
updateTimestamp (DatabaseBlock $block) | |
Update the timestamp on autoblocks. | |
getAutoblockExpiry ( $timestamp, string $parentExpiry=null) | |
Get the expiry timestamp for an autoblock created at the given time. | |
Definition at line 59 of file DatabaseBlockStore.php.
MediaWiki\Block\DatabaseBlockStore::__construct | ( | ServiceOptions | $options, |
LoggerInterface | $logger, | ||
ActorStoreFactory | $actorStoreFactory, | ||
BlockRestrictionStore | $blockRestrictionStore, | ||
CommentStore | $commentStore, | ||
HookContainer | $hookContainer, | ||
IConnectionProvider | $dbProvider, | ||
ReadOnlyMode | $readOnlyMode, | ||
UserFactory | $userFactory, | ||
TempUserConfig | $tempUserConfig, | ||
BlockUtils | $blockUtils, | ||
AutoblockExemptionList | $autoblockExemptionList, | ||
$wikiId = DatabaseBlock::LOCAL ) |
ServiceOptions | $options | |
LoggerInterface | $logger | |
ActorStoreFactory | $actorStoreFactory | |
BlockRestrictionStore | $blockRestrictionStore | |
CommentStore | $commentStore | |
HookContainer | $hookContainer | |
IConnectionProvider | $dbProvider | |
ReadOnlyMode | $readOnlyMode | |
UserFactory | $userFactory | |
TempUserConfig | $tempUserConfig | |
BlockUtils | $blockUtils | |
AutoblockExemptionList | $autoblockExemptionList | |
string | false | $wikiId |
Definition at line 132 of file DatabaseBlockStore.php.
References MediaWiki\Config\ServiceOptions\assertRequiredOptions().
MediaWiki\Block\DatabaseBlockStore::deleteBlock | ( | DatabaseBlock | $block | ) |
Delete a DatabaseBlock from the database.
DatabaseBlock | $block |
Definition at line 1344 of file DatabaseBlockStore.php.
MediaWiki\Block\DatabaseBlockStore::deleteBlocksMatchingConds | ( | array | $conds, |
$limit = null ) |
Delete all blocks matching the given conditions.
array | $conds | An associative array mapping the field name to the matched value. Some limited schema abstractions are implemented, to allow new field names to be used with the old schema. |
int | null | $limit | The maximum number of blocks to delete |
Definition at line 827 of file DatabaseBlockStore.php.
MediaWiki\Block\DatabaseBlockStore::doAutoblock | ( | DatabaseBlock | $parentBlock, |
$autoblockIP ) |
Autoblocks the given IP, referring to the specified block.
DatabaseBlock | $parentBlock | |
string | $autoblockIP | The IP to autoblock. |
Definition at line 1558 of file DatabaseBlockStore.php.
References MediaWiki\DAO\WikiAwareEntity\assertWiki(), MediaWiki\Block\DatabaseBlock\getBlocker(), MediaWiki\Block\AbstractBlock\getExpiry(), MediaWiki\Block\AbstractBlock\getHideName(), MediaWiki\Block\DatabaseBlock\getId(), MediaWiki\Block\DatabaseBlock\getRestrictions(), MediaWiki\Block\DatabaseBlock\isAutoblocking(), MediaWiki\Block\AbstractBlock\isCreateAccountBlocked(), MediaWiki\Block\AbstractBlock\isSitewide(), MediaWiki\Block\AbstractBlock\isUsertalkEditAllowed(), and wfTimestampNow().
MediaWiki\Block\DatabaseBlockStore::getAutoblockExpiry | ( | $timestamp, | |
string | $parentExpiry = null ) |
Get the expiry timestamp for an autoblock created at the given time.
If the parent block expiry is specified, the return value will be earlier than or equal to the parent block expiry.
string | int | $timestamp | |
string | null | $parentExpiry |
Definition at line 1682 of file DatabaseBlockStore.php.
References wfTimestamp().
MediaWiki\Block\DatabaseBlockStore::getQueryInfo | ( | $schema = self::SCHEMA_BLOCK | ) |
Return the tables, fields, and join conditions to be selected to create a new block object.
Since 1.34, ipb_by and ipb_by_text have not been present in the database, but they continue to be available in query results as aliases.
string | $schema | What schema to use for field aliases. May be either self::SCHEMA_IPBLOCKS or self::SCHEMA_BLOCK. This parameter will soon be removed. |
$table
to IDatabase->select()
or SelectQueryBuilder::tables
$vars
to IDatabase->select()
or SelectQueryBuilder::fields
$join_conds
to IDatabase->select()
or SelectQueryBuilder::joinConds
Definition at line 240 of file DatabaseBlockStore.php.
Referenced by MediaWiki\Block\DatabaseBlockStore\newFromID(), MediaWiki\Block\DatabaseBlockStore\newListFromConds(), and MediaWiki\Block\DatabaseBlockStore\newListFromIPs().
MediaWiki\Block\DatabaseBlockStore::getRangeCond | ( | $start, | |
$end, | |||
$schema = self::SCHEMA_BLOCK ) |
Get a set of SQL conditions which select range blocks encompassing a given range.
If the given range is a single IP with start=end, it will also select single IP blocks with that IP.
string | $start | Hexadecimal IP representation |
string | null | $end | Hexadecimal IP representation, or null to use $start = $end |
string | $schema | What schema to use for field aliases. Can be one of:
|
Definition at line 511 of file DatabaseBlockStore.php.
References LIST_AND, and MediaWiki\Block\DatabaseBlockStore\SCHEMA_BLOCK.
Referenced by MediaWiki\Block\DatabaseBlockStore\newListFromIPs().
MediaWiki\Block\DatabaseBlockStore::getReadStage | ( | ) |
Get the read stage of the block_target migration.
Definition at line 172 of file DatabaseBlockStore.php.
References SCHEMA_COMPAT_NEW, and wfDeprecated().
MediaWiki\Block\DatabaseBlockStore::getWriteStage | ( | ) |
Get the write stage of the block_target migration.
Definition at line 184 of file DatabaseBlockStore.php.
References SCHEMA_COMPAT_NEW, and wfDeprecated().
MediaWiki\Block\DatabaseBlockStore::insertBlock | ( | DatabaseBlock | $block, |
$expectedTargetCount = 0 ) |
Insert a block into the block table.
Will fail if there is a conflicting block (same name and options) already in the database.
DatabaseBlock | $block | |
int | null | $expectedTargetCount | The expected number of existing blocks on the specified target. If this is zero but there is an existing block, the insertion will fail. |
Definition at line 974 of file DatabaseBlockStore.php.
References $success, MediaWiki\DAO\WikiAwareEntity\assertWiki(), MediaWiki\Block\DatabaseBlock\getBlocker(), MediaWiki\Block\DatabaseBlock\getId(), MediaWiki\Block\AbstractBlock\getTargetUserIdentity(), and MediaWiki\Block\AbstractBlock\getTimestamp().
MediaWiki\Block\DatabaseBlockStore::newFromID | ( | $id | ) |
Load a block from the block ID.
int | $id | ID to search for |
Definition at line 200 of file DatabaseBlockStore.php.
References MediaWiki\Block\DatabaseBlockStore\getQueryInfo(), and MediaWiki\Block\DatabaseBlockStore\newFromRow().
Referenced by MediaWiki\Block\DatabaseBlockStore\newListFromTarget().
MediaWiki\Block\DatabaseBlockStore::newFromRow | ( | IReadableDatabase | $db, |
$row ) |
Create a new DatabaseBlock object from a database row.
IReadableDatabase | $db | The database you got the row from |
stdClass | $row | Row from the ipblocks table |
Definition at line 581 of file DatabaseBlockStore.php.
References Wikimedia\Rdbms\Platform\ISQLPlatform\decodeExpiry().
Referenced by MediaWiki\Block\DatabaseBlockStore\newFromID(), MediaWiki\Block\DatabaseBlockStore\newListFromConds(), and MediaWiki\Block\DatabaseBlockStore\newListFromIPs().
MediaWiki\Block\DatabaseBlockStore::newFromTarget | ( | $specificTarget, | |
$vagueTarget = null, | |||
$fromPrimary = false ) |
Given a target and the target's type, get an existing block object if possible.
string | UserIdentity | int | null | $specificTarget | A block target, which may be one of several types:
|
string | UserIdentity | 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 | $fromPrimary | Whether to use the DB_PRIMARY database |
Definition at line 660 of file DatabaseBlockStore.php.
References MediaWiki\Block\DatabaseBlockStore\newListFromTarget().
MediaWiki\Block\DatabaseBlockStore::newListFromConds | ( | $conds, | |
$fromPrimary = false, | |||
$includeExpired = false ) |
Construct an array of blocks from database conditions.
array | $conds | For schema-independence this should be an associative array mapping field names to values. Field names from the new schema should be used. |
bool | $fromPrimary | |
bool | $includeExpired |
Definition at line 764 of file DatabaseBlockStore.php.
References MediaWiki\Block\DatabaseBlockStore\getQueryInfo(), and MediaWiki\Block\DatabaseBlockStore\newFromRow().
MediaWiki\Block\DatabaseBlockStore::newListFromIPs | ( | array | $addresses, |
$applySoftBlocks, | |||
$fromPrimary = false ) |
Get all blocks that match any IP from an array of IP addresses.
string[] | $addresses | Validated list of IP addresses |
bool | $applySoftBlocks | Include soft blocks (anonymous-only blocks). These should only block anonymous and temporary users. |
bool | $fromPrimary | Whether to query the primary or replica DB |
Definition at line 711 of file DatabaseBlockStore.php.
References MediaWiki\Block\DatabaseBlockStore\getQueryInfo(), MediaWiki\Block\DatabaseBlockStore\getRangeCond(), LIST_OR, and MediaWiki\Block\DatabaseBlockStore\newFromRow().
MediaWiki\Block\DatabaseBlockStore::newListFromTarget | ( | $specificTarget, | |
$vagueTarget = null, | |||
$fromPrimary = false ) |
This is similar to DatabaseBlockStore::newFromTarget, but it returns all the relevant blocks.
string | UserIdentity | int | null | $specificTarget | |
string | UserIdentity | int | null | $vagueTarget | |
bool | $fromPrimary |
Definition at line 678 of file DatabaseBlockStore.php.
References MediaWiki\Block\DatabaseBlockStore\newFromID(), MediaWiki\Block\Block\TYPE_AUTO, MediaWiki\Block\Block\TYPE_ID, MediaWiki\Block\Block\TYPE_IP, MediaWiki\Block\Block\TYPE_RANGE, and MediaWiki\Block\Block\TYPE_USER.
Referenced by MediaWiki\Block\DatabaseBlockStore\newFromTarget().
MediaWiki\Block\DatabaseBlockStore::purgeExpiredBlocks | ( | ) |
Delete expired blocks from the ipblocks table.
Definition at line 793 of file DatabaseBlockStore.php.
References Wikimedia\Rdbms\IReadableDatabase\expr(), Wikimedia\Rdbms\IReadableDatabase\newSelectQueryBuilder(), Wikimedia\Rdbms\Platform\ISQLPlatform\timestamp(), and MediaWiki\MainConfigNames\UpdateRowsPerQuery.
MediaWiki\Block\DatabaseBlockStore::updateBlock | ( | DatabaseBlock | $block | ) |
Update a block in the DB with new parameters.
The ID field needs to be loaded first. The target must stay the same.
DatabaseBlock | $block |
Definition at line 1223 of file DatabaseBlockStore.php.
References MediaWiki\DAO\WikiAwareEntity\assertWiki(), MediaWiki\Block\DatabaseBlock\getId(), MediaWiki\Block\DatabaseBlock\getRawRestrictions(), MediaWiki\Block\AbstractBlock\getTimestamp(), and MediaWiki\Block\DatabaseBlock\isAutoblocking().
MediaWiki\Block\DatabaseBlockStore::updateTarget | ( | DatabaseBlock | $block, |
$newTarget ) |
Update the target in the specified object and in the database.
The block ID must be set.
This is an unusual operation, currently used only by the UserMerge extension.
DatabaseBlock | $block | |
UserIdentity | string | $newTarget |
Definition at line 1301 of file DatabaseBlockStore.php.
References MediaWiki\Block\DatabaseBlock\getId(), and MediaWiki\Block\AbstractBlock\setTarget().
MediaWiki\Block\DatabaseBlockStore::updateTimestamp | ( | DatabaseBlock | $block | ) |
Update the timestamp on autoblocks.
DatabaseBlock | $block |
Definition at line 1647 of file DatabaseBlockStore.php.
References MediaWiki\DAO\WikiAwareEntity\assertWiki(), MediaWiki\Block\AbstractBlock\getExpiry(), MediaWiki\Block\DatabaseBlock\getId(), MediaWiki\Block\AbstractBlock\getTimestamp(), MediaWiki\Block\DatabaseBlock\getType(), MediaWiki\Block\AbstractBlock\setExpiry(), MediaWiki\Block\AbstractBlock\setTimestamp(), and wfTimestamp().
const MediaWiki\Block\DatabaseBlockStore::CONSTRUCTOR_OPTIONS |
Definition at line 70 of file DatabaseBlockStore.php.
const MediaWiki\Block\DatabaseBlockStore::SCHEMA_BLOCK = 'block' |
The new schema.
Definition at line 63 of file DatabaseBlockStore.php.
Referenced by MediaWiki\Block\DatabaseBlockStore\getRangeCond().
const MediaWiki\Block\DatabaseBlockStore::SCHEMA_CURRENT = 'current' |
The schema currently selected by the read stage.
Definition at line 65 of file DatabaseBlockStore.php.
const MediaWiki\Block\DatabaseBlockStore::SCHEMA_IPBLOCKS = 'ipblocks' |
The old schema.
Definition at line 61 of file DatabaseBlockStore.php.
Referenced by MediaWiki\Block\DatabaseBlock\getQueryInfo(), and MediaWiki\Block\DatabaseBlock\getRangeCond().