getVal( 'wpUnblockAddress', $wgRequest->getVal( 'ip' ) ); $reason = $wgRequest->getText( 'wpUnblockReason' ); $action = $wgRequest->getText( 'action' ); $ipu = new IPUnblockForm( $ip, $reason ); if ( "success" == $action ) { $msg = wfMsg( "ipusuccess", htmlspecialchars( $ip ) ); $ipu->showList( $msg ); } else if ( "submit" == $action && $wgRequest->wasPosted() && $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) { if ( ! $wgUser->isAllowed('block') ) { $wgOut->sysopRequired(); return; } $ipu->doSubmit(); } else if ( "unblock" == $action ) { $ipu->showForm( "" ); } else { $ipu->showList( "" ); } } /** * * @package MediaWiki * @subpackage SpecialPage */ class IPUnblockForm { var $ip, $reason; function IPUnblockForm( $ip, $reason ) { $this->ip = $ip; $this->reason = $reason; } function showForm( $err ) { global $wgOut, $wgUser, $wgLang; $wgOut->setPagetitle( wfMsg( "unblockip" ) ); $wgOut->addWikiText( wfMsg( "unblockiptext" ) ); $ipa = wfMsg( "ipaddress" ); $ipr = wfMsg( "ipbreason" ); $ipus = htmlspecialchars( wfMsg( "ipusubmit" ) ); $titleObj = Title::makeTitle( NS_SPECIAL, "Ipblocklist" ); $action = $titleObj->escapeLocalURL( "action=submit" ); if ( "" != $err ) { $wgOut->setSubtitle( wfMsg( "formerror" ) ); $wgOut->addHTML( "

{$err}

\n" ); } $token = htmlspecialchars( $wgUser->editToken() ); $wgOut->addHTML( "
{$ipa}: ip ) . "\" />
{$ipr}: reason ) . "\" />
 
\n" ); } function doSubmit() { global $wgOut, $wgUser, $wgLang; $block = new Block(); $this->ip = trim( $this->ip ); if ( $this->ip{0} == "#" ) { $block->mId = substr( $this->ip, 1 ); } else { $block->mAddress = $this->ip; } # Delete block (if it exists) # We should probably check for errors rather than just declaring success $block->delete(); # Make log entry $log = new LogPage( 'block' ); $log->addEntry( 'unblock', Title::makeTitle( NS_USER, $this->ip ), $this->reason ); # Report to the user $titleObj = Title::makeTitle( NS_SPECIAL, "Ipblocklist" ); $success = $titleObj->getFullURL( "action=success&ip=" . urlencode( $this->ip ) ); $wgOut->redirect( $success ); } function showList( $msg ) { global $wgOut; $wgOut->setPagetitle( wfMsg( "ipblocklist" ) ); if ( "" != $msg ) { $wgOut->setSubtitle( $msg ); } $wgOut->addHTML( "\n" ); } } /** * Callback function to output a block */ function wfAddRow( $block, $tag ) { global $wgOut, $wgUser, $wgLang, $wgContLang; $sk = $wgUser->getSkin(); # Hide addresses blocked by User::spreadBlocks, for privacy $addr = $block->mAuto ? "#{$block->mId}" : $block->mAddress; $name = User::whoIs( $block->mBy ); $ulink = $sk->makeKnownLinkObj( Title::makeTitle( NS_USER, $name ), $name ); $formattedTime = $wgLang->timeanddate( $block->mTimestamp, true ); if ( $block->mExpiry === "" ) { $formattedExpiry = "indefinite"; } else { $formattedExpiry = $wgLang->timeanddate( $block->mExpiry, true ); } $line = wfMsg( "blocklistline", $formattedTime, $ulink, $addr, $formattedExpiry ); $wgOut->addHTML( "
  • {$line}" ); if ( !$block->mAuto ) { $titleObj = Title::makeTitle( NS_SPECIAL, "Contributions" ); $clink = "escapeLocalURL( "target={$block->mAddress}" ) . "\">" . wfMsg( "contribslink" ) . ""; $wgOut->addHTML( " ({$clink})" ); } if ( $wgUser->isAllowed('block') ) { $titleObj = Title::makeTitle( NS_SPECIAL, "Ipblocklist" ); $ublink = "escapeLocalURL( "action=unblock&ip=" . urlencode( $addr ) ) . "\">" . wfMsg( "unblocklink" ) . ""; $wgOut->addHTML( " ({$ublink})" ); } $wgOut->addHTML( $sk->commentBlock( $block->mReason ) ); $wgOut->addHTML( "
  • \n" ); } ?>