protected $queryFlagsUsed = self::READ_NORMAL;
/** @var string Indicates type of block (used for eventlogging)
- * Permitted values: 'cookie-block', 'proxy-block', 'openproxy-block', 'xff-block'
+ * Permitted values: 'cookie-block', 'proxy-block', 'openproxy-block', 'xff-block',
+ * 'config-block'
*/
public $blockTrigger = false;
* Check when actually saving should be done against master.
*/
private function getBlockedStatus( $bFromSlave = true ) {
- global $wgProxyWhitelist, $wgUser, $wgApplyIpBlocksToXff;
+ global $wgProxyWhitelist, $wgUser, $wgApplyIpBlocksToXff, $wgSoftBlockRanges;
if ( -1 != $this->mBlockedby ) {
return;
}
}
+ if ( !$block instanceof Block
+ && $ip !== null
+ && $this->isAnon()
+ && IP::isInRanges( $ip, $wgSoftBlockRanges )
+ ) {
+ $block = new Block( [
+ 'address' => $ip,
+ 'byText' => 'MediaWiki default',
+ 'reason' => wfMessage( 'softblockrangesreason', $ip )->text(),
+ 'anonOnly' => true,
+ 'systemBlock' => 'wgSoftBlockRanges',
+ ] );
+ $this->blockTrigger = 'config-block';
+ }
+
if ( $block instanceof Block ) {
wfDebug( __METHOD__ . ": Found block.\n" );
$this->mBlock = $block;