'ipb_blocked_as_range' => array( 'code' => 'blockedasrange', 'info' => "IP address ``\$1'' was blocked as part of range ``\$2''. You can't unblock the IP invidually, but you can unblock the range as a whole." ),
'ipb_cant_unblock' => array( 'code' => 'cantunblock', 'info' => "The block you specified was not found. It may have been unblocked already" ),
'mailnologin' => array( 'code' => 'cantsend', 'info' => "You are not logged in, you do not have a confirmed e-mail address, or you are not allowed to send e-mail to other users, so you cannot send e-mail" ),
+ 'ipbblocked' => array( 'code' => 'ipbblocked', 'info' => 'You cannot block or unblock users while you are yourself blocked' ),
+ 'ipbnounblockself' => array( 'code' => 'ipbnounblockself', 'info' => 'You are not allowed to unblock yourself' ),
'usermaildisabled' => array( 'code' => 'usermaildisabled', 'info' => "User email has been disabled" ),
'blockedemailuser' => array( 'code' => 'blockedfrommail', 'info' => "You have been blocked from sending e-mail" ),
'notarget' => array( 'code' => 'notarget', 'info' => "You have not specified a valid target for this action" ),
if ( !$wgUser->isAllowed( 'block' ) ) {
$this->dieUsageMsg( array( 'cantblock' ) );
}
+ # bug 15810: blocked admins should have limited access here
+ if( $wgUser->isBlocked() ){
+ $user = User::newFromName( $params['user'] );
+ if( $user instanceof User
+ && $user->getId() == $wgUser->getId() )
+ {
+ # User is trying to unblock themselves
+ if( !$wgUser->isAllowed( 'unblockself' ) ){
+ $this->dieUsageMsg( array( 'ipbnounblockself' ) );
+ }
+ } else {
+ # User is trying to block/unblock someone else
+ $this->dieUsageMsg( array( 'ipbblocked' ) );
+ }
+ }
if ( $params['hidename'] && !$wgUser->isAllowed( 'hideuser' ) ) {
$this->dieUsageMsg( array( 'canthide' ) );
}
array( 'cantblock' ),
array( 'canthide' ),
array( 'cantblock-email' ),
+ array( 'ipbblocked' ),
+ array( 'ipbnounblockself' ),
) );
}
if ( !$wgUser->isAllowed( 'block' ) ) {
$this->dieUsageMsg( array( 'cantunblock' ) );
}
+ # bug 15810: blocked admins should have limited access here
+ if( $wgUser->isBlocked() ){
+ $user = User::newFromName( $params['user'] );
+ if( $user instanceof User
+ && $user->getId() == $wgUser->getId() )
+ {
+ # User is trying to unblock themselves
+ if( !$wgUser->isAllowed( 'unblockself' ) ){
+ $this->dieUsageMsg( array( 'ipbnounblockself' ) );
+ }
+ } else {
+ # User is trying to block/unblock someone else
+ $this->dieUsageMsg( array( 'ipbblocked' ) );
+ }
+ }
$id = $params['id'];
$user = $params['user'];
array( 'unblock-notarget' ),
array( 'unblock-idanduser' ),
array( 'cantunblock' ),
+ array( 'ipbblocked' ),
+ array( 'ipbnounblockself' ),
) );
}