}
$this->setReason( $options['reason'] );
- $this->mTimestamp = wfTimestamp( TS_MW, $options['timestamp'] );
+ $this->setTimestamp( wfTimestamp( TS_MW, $options['timestamp'] ) );
$this->setExpiry( wfGetDB( DB_REPLICA )->decodeExpiry( $options['expiry'] ) );
# Boolean settings
$row->ipb_by, $row->ipb_by_text, $row->ipb_by_actor ?? null
) );
- $this->mTimestamp = wfTimestamp( TS_MW, $row->ipb_timestamp );
+ $this->setTimestamp( wfTimestamp( TS_MW, $row->ipb_timestamp ) );
$this->mAuto = $row->ipb_auto;
$this->setHideName( $row->ipb_deleted );
$this->mId = (int)$row->ipb_id;
->inContentLanguage()->plain()
);
$timestamp = wfTimestampNow();
- $autoblock->mTimestamp = $timestamp;
+ $autoblock->setTimestamp( $timestamp );
$autoblock->mAuto = 1;
$autoblock->isCreateAccountBlocked( $this->isCreateAccountBlocked() );
# Continue suppressing the name if needed
/**
* Is the block address valid (i.e. not a null string?)
+ *
+ * @deprecated since 1.33 No longer needed in core.
* @return bool
*/
public function isValid() {
+ wfDeprecated( __METHOD__, '1.33' );
return $this->getTarget() != null;
}
*/
public function updateTimestamp() {
if ( $this->mAuto ) {
- $this->mTimestamp = wfTimestamp();
+ $this->setTimestamp( wfTimestamp() );
$this->setExpiry( self::getAutoblockExpiry( $this->getTimestamp() ) );
$dbw = wfGetDB( DB_MASTER );
* @return int (0 for foreign users)
*/
public function getBy() {
- $blocker = $this->getBlocker();
- return ( $blocker instanceof User )
- ? $blocker->getId()
- : 0;
+ return $this->getBlocker()->getId();
}
/**
* @return string
*/
public function getByName() {
- $blocker = $this->getBlocker();
- return ( $blocker instanceof User )
- ? $blocker->getName()
- : (string)$blocker; // username
+ return $this->getBlocker()->getName();
}
/**
// their own talk page unless a restriction exists on the
// page or User_talk: namespace
wfSetVar( $this->allowUsertalk, $x === null ? null : !$x );
- $res = !$this->isUserTalkEditAllowed();
+ $res = !$this->isUsertalkEditAllowed();
// edit own user talk can be disabled by config
if ( !$blockAllowsUTEdit ) {
return null;
}
+
+ /**
+ * Check if the block should be tracked with a cookie.
+ *
+ * @since 1.33
+ * @param bool $isIpUser The user is logged out
+ * @return bool The block should be tracked with a cookie
+ */
+ public function shouldTrackWithCookie( $isIpUser ) {
+ $config = RequestContext::getMain()->getConfig();
+ switch ( $this->getType() ) {
+ case self::TYPE_IP:
+ case self::TYPE_RANGE:
+ return $isIpUser && $config->get( 'CookieSetOnIpBlock' );
+ case self::TYPE_USER:
+ return !$isIpUser && $config->get( 'CookieSetOnAutoblock' ) && $this->isAutoblocking();
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Check if the block prevents a user from resetting their password
+ *
+ * @since 1.33
+ * @return bool The block blocks password reset
+ */
+ public function appliesToPasswordReset() {
+ switch ( $this->getSystemBlockType() ) {
+ case null:
+ case 'global-block':
+ return $this->isCreateAccountBlocked();
+ case 'proxy':
+ return true;
+ case 'dnsbl':
+ case 'wgSoftBlockRanges':
+ return false;
+ default:
+ return true;
+ }
+ }
+
}