'BlockIpComplete': After an IP address or user is blocked.
$block: the Block object that was saved
$user: the user who did the block (not the one being blocked)
+$priorBlock: the Block object for the prior block or null if there was none
'BookInformation': Before information output on Special:Booksources.
$isbn: ISBN to show information for
return [ 'ipb-blockingself', 'ipb-confirmaction' ];
}
} elseif ( $type == Block::TYPE_RANGE ) {
+ $user = null;
$userId = 0;
} elseif ( $type == Block::TYPE_IP ) {
+ $user = null;
$target = $target->getName();
$userId = 0;
} else {
return $reason;
}
+ $priorBlock = null;
# Try to insert block. Is there a conflicting block?
$status = $block->insert();
if ( !$status ) {
# This returns direct blocks before autoblocks/rangeblocks, since we should
# be sure the user is blocked by now it should work for our purposes
$currentBlock = Block::newFromTarget( $target );
-
if ( $block->equals( $currentBlock ) ) {
return [ [ 'ipb_already_blocked', $block->getTarget() ] ];
}
-
# If the name was hidden and the blocking user cannot hide
# names, then don't allow any block changes...
if ( $currentBlock->mHideName && !$performer->isAllowed( 'hideuser' ) ) {
return [ 'cant-see-hidden-user' ];
}
+ $priorBlock = clone $currentBlock;
$currentBlock->isHardblock( $block->isHardblock() );
$currentBlock->prevents( 'createaccount', $block->prevents( 'createaccount' ) );
$currentBlock->mExpiry = $block->mExpiry;
$logaction = 'block';
}
- Hooks::run( 'BlockIpComplete', [ $block, $performer ] );
+ Hooks::run( 'BlockIpComplete', [ $block, $performer, $priorBlock ] );
# Set *_deleted fields if requested
if ( $data['HideUser'] ) {