X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FSpecialIpblocklist.php;h=492f78db26c9d6c45f22974087ac75af71e6617e;hb=ffd7b6829ec2a9e692fec0ebd7b1bdee626280f8;hp=300e60f86c4b85fcbea750573a6ae8d1205a7173;hpb=840dee3ad43a33d5b97b2e1dee64d5c04e255227;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SpecialIpblocklist.php b/includes/SpecialIpblocklist.php index 300e60f86c..492f78db26 100644 --- a/includes/SpecialIpblocklist.php +++ b/includes/SpecialIpblocklist.php @@ -1,18 +1,28 @@ getVal( 'wpUnblockAddress', $wgRequest->getVal( 'ip' ) ); + $reason = $wgRequest->getText( 'wpUnblockReason' ); + $action = $wgRequest->getText( 'action' ); + + $ipu = new IPUnblockForm( $ip, $reason ); if ( "success" == $action ) { - $msg = wfMsg( "ipusuccess", $ip ); + $msg = wfMsg( "ipusuccess", htmlspecialchars( $ip ) ); $ipu->showList( $msg ); - } else if ( "submit" == $action ) { - if ( ! $wgUser->isSysop() ) { + } else if ( "submit" == $action && $wgRequest->wasPosted() && + $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) { + if ( ! $wgUser->isAllowed('block') ) { $wgOut->sysopRequired(); return; } @@ -24,57 +34,75 @@ function wfSpecialIpblocklist() } } +/** + * + * @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; - global $ip, $wpUnblockAddress; $wgOut->setPagetitle( wfMsg( "unblockip" ) ); $wgOut->addWikiText( wfMsg( "unblockiptext" ) ); - if ( ! $wpUnblockAddress ) { $wpUnblockAddress = $ip; } $ipa = wfMsg( "ipaddress" ); $ipr = wfMsg( "ipbreason" ); - $ipus = wfMsg( "ipusubmit" ); + $ipus = htmlspecialchars( wfMsg( "ipusubmit" ) ); $titleObj = Title::makeTitle( NS_SPECIAL, "Ipblocklist" ); - $action = $titleObj->getURL( "action=submit", true ); + $action = $titleObj->escapeLocalURL( "action=submit" ); if ( "" != $err ) { $wgOut->setSubtitle( wfMsg( "formerror" ) ); - $wgOut->addHTML( "

{$err}\n" ); + $wgOut->addHTML( "

{$err}

\n" ); } - $wgOut->addHTML( "

+ $token = htmlspecialchars( $wgUser->editToken() ); + + $wgOut->addHTML( "

- - - - - -
{$ipa}: - -
{$ipr}: - -
  - -
+ + + + + + + + + + + + + +
{$ipa}: + ip ) . "\" /> +
{$ipr}: + reason ) . "\" /> +
  + +
+
\n" ); } - function doSubmit() - { + function doSubmit() { global $wgOut, $wgUser, $wgLang; - global $wpUnblockAddress, $wpUnblockReason; $block = new Block(); - $wpUnblockAddress = trim( $wpUnblockAddress ); + $this->ip = trim( $this->ip ); - if ( $wpUnblockAddress{0} == "#" ) { - $block->mId = substr( $wpUnblockAddress, 1 ); + if ( $this->ip{0} == "#" ) { + $block->mId = substr( $this->ip, 1 ); } else { - $block->mAddress = $wpUnblockAddress; + $block->mAddress = $this->ip; } # Delete block (if it exists) @@ -82,18 +110,16 @@ class IPUnblockForm { $block->delete(); # Make log entry - $log = new LogPage( wfMsg( "blocklogpage" ), wfMsg( "blocklogtext" ) ); - $action = wfMsg( "unblocklogentry", $wpUnblockAddress ); - $log->addEntry( $action, $wpUnblockReason ); + $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->getURL( "action=success&ip=" . urlencode($wpUnblockAddress) ); + $success = $titleObj->getFullURL( "action=success&ip=" . urlencode( $this->ip ) ); $wgOut->redirect( $success ); } - function showList( $msg ) - { + function showList( $msg ) { global $wgOut; $wgOut->setPagetitle( wfMsg( "ipblocklist" ) ); @@ -106,9 +132,11 @@ class IPUnblockForm { } } -# Callback function to output a block +/** + * Callback function to output a block + */ function wfAddRow( $block, $tag ) { - global $wgOut, $wgUser, $wgLang, $ip; + global $wgOut, $wgUser, $wgLang, $wgContLang; $sk = $wgUser->getSkin(); @@ -116,7 +144,7 @@ function wfAddRow( $block, $tag ) { $addr = $block->mAuto ? "#{$block->mId}" : $block->mAddress; $name = User::whoIs( $block->mBy ); - $ulink = $sk->makeKnownLink( $wgLang->getNsText( Namespace::getUser() ). ":{$name}", $name ); + $ulink = $sk->makeKnownLinkObj( Title::makeTitle( NS_USER, $name ), $name ); $formattedTime = $wgLang->timeanddate( $block->mTimestamp, true ); if ( $block->mExpiry === "" ) { @@ -128,25 +156,22 @@ function wfAddRow( $block, $tag ) { $line = wfMsg( "blocklistline", $formattedTime, $ulink, $addr, $formattedExpiry ); $wgOut->addHTML( "
  • {$line}" ); - + if ( !$block->mAuto ) { $titleObj = Title::makeTitle( NS_SPECIAL, "Contributions" ); - $clink = "getURL( "target={$block->mAddress}", true ) . "\">" . + $clink = "escapeLocalURL( "target={$block->mAddress}" ) . "\">" . wfMsg( "contribslink" ) . ""; $wgOut->addHTML( " ({$clink})" ); } - if ( $wgUser->isSysop() ) { + if ( $wgUser->isAllowed('block') ) { $titleObj = Title::makeTitle( NS_SPECIAL, "Ipblocklist" ); $ublink = "getURL( "action=unblock&ip=" . urlencode( $addr ), true ) . "\">" . + $titleObj->escapeLocalURL( "action=unblock&ip=" . urlencode( $addr ) ) . "\">" . wfMsg( "unblocklink" ) . ""; $wgOut->addHTML( " ({$ublink})" ); } - if ( "" != $block->mReason ) { - $wgOut->addHTML( " (" . wfEscapeHTML( $block->mReason ) . - ")" ); - } + $wgOut->addHTML( $sk->commentBlock( $block->mReason ) ); $wgOut->addHTML( "
  • \n" ); }