] );
if ( $shouldSetCookie ) {
$block->setCookie( $this->getRequest()->response() );
-
- // temporary measure the use of cookies on ip blocks
- $stats = MediaWikiServices::getInstance()->getStatsdDataFactory();
- $stats->increment( 'block.ipblock.setCookie.success' );
}
} elseif ( $this->isLoggedIn() && $config->get( 'CookieSetOnAutoblock' ) ) {
$shouldSetCookie = $block->getType() === Block::TYPE_USER && $block->isAutoblocking();
/**
* Get blocking information
- * @param bool $bFromReplica Whether to check the replica DB first.
+ * @param bool $fromReplica Whether to check the replica DB first.
* To improve performance, non-critical checks are done against replica DBs.
* Check when actually saving should be done against master.
*/
- private function getBlockedStatus( $bFromReplica = true ) {
- global $wgProxyWhitelist, $wgUser, $wgApplyIpBlocksToXff, $wgSoftBlockRanges;
+ private function getBlockedStatus( $fromReplica = true ) {
+ global $wgProxyWhitelist, $wgApplyIpBlocksToXff, $wgSoftBlockRanges;
if ( $this->mBlockedby != -1 ) {
return;
# user is not immune to autoblocks/hardblocks, and they are the current user so we
# know which IP address they're actually coming from
$ip = null;
- if ( !$this->isAllowed( 'ipblock-exempt' ) ) {
- // $wgUser->getName() only works after the end of Setup.php. Until
- // then, assume it's a logged-out user.
- $globalUserName = $wgUser->isSafeToLoad()
- ? $wgUser->getName()
- : IP::sanitizeIP( $wgUser->getRequest()->getIP() );
- if ( $this->getName() === $globalUserName ) {
- $ip = $this->getRequest()->getIP();
- }
+ $sessionUser = RequestContext::getMain()->getUser();
+ // the session user is set up towards the end of Setup.php. Until then,
+ // assume it's a logged-out user.
+ $globalUserName = $sessionUser->isSafeToLoad()
+ ? $sessionUser->getName()
+ : IP::sanitizeIP( $sessionUser->getRequest()->getIP() );
+ if ( $this->getName() === $globalUserName && !$this->isAllowed( 'ipblock-exempt' ) ) {
+ $ip = $this->getRequest()->getIP();
}
// User/IP blocking
- $block = Block::newFromTarget( $this, $ip, !$bFromReplica );
+ $block = Block::newFromTarget( $this, $ip, !$fromReplica );
// Cookie blocking
if ( !$block instanceof Block ) {
$xff = $this->getRequest()->getHeader( 'X-Forwarded-For' );
$xff = array_map( 'trim', explode( ',', $xff ) );
$xff = array_diff( $xff, [ $ip ] );
- $xffblocks = Block::getBlocksForIPList( $xff, $this->isAnon(), !$bFromReplica );
+ $xffblocks = Block::getBlocksForIPList( $xff, $this->isAnon(), !$fromReplica );
$block = Block::chooseBlock( $xffblocks, $xff );
if ( $block instanceof Block ) {
# Mangle the reason to alert the user that the block
# originated from matching the X-Forwarded-For header.
- $block->mReason = wfMessage( 'xffblockreason', $block->mReason )->plain();
+ $block->setReason( wfMessage( 'xffblockreason', $block->getReason() )->plain() );
}
}
wfDebug( __METHOD__ . ": Found block.\n" );
$this->mBlock = $block;
$this->mBlockedby = $block->getByName();
- $this->mBlockreason = $block->mReason;
- $this->mHideName = $block->mHideName;
+ $this->mBlockreason = $block->getReason();
+ $this->mHideName = $block->getHideName();
$this->mAllowUsertalk = $block->isUsertalkEditAllowed();
} else {
$this->mBlock = null;
}
// Avoid PHP 7.1 warning of passing $this by reference
- $user = $this;
+ $thisUser = $this;
// Extensions
- Hooks::run( 'GetBlockedStatus', [ &$user ] );
+ Hooks::run( 'GetBlockedStatus', [ &$thisUser ] );
}
/**
/**
* Check if user is blocked
*
- * @param bool $bFromReplica Whether to check the replica DB instead of
+ * @param bool $fromReplica Whether to check the replica DB instead of
* the master. Hacked from false due to horrible probs on site.
* @return bool True if blocked, false otherwise
*/
- public function isBlocked( $bFromReplica = true ) {
- return $this->getBlock( $bFromReplica ) instanceof Block &&
+ public function isBlocked( $fromReplica = true ) {
+ return $this->getBlock( $fromReplica ) instanceof Block &&
$this->getBlock()->appliesToRight( 'edit' );
}
/**
* Get the block affecting the user, or null if the user is not blocked
*
- * @param bool $bFromReplica Whether to check the replica DB instead of the master
+ * @param bool $fromReplica Whether to check the replica DB instead of the master
* @return Block|null
*/
- public function getBlock( $bFromReplica = true ) {
- $this->getBlockedStatus( $bFromReplica );
+ public function getBlock( $fromReplica = true ) {
+ $this->getBlockedStatus( $fromReplica );
return $this->mBlock instanceof Block ? $this->mBlock : null;
}