X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSpecialUnlockdb.php;h=74b794ddd897d35dee23e3c149da4a1c684ac16b;hb=2818773456751c1a5aa6c87f77d631cbf1c12659;hp=5e51e8add4c11e49e8d0e7a8c8991a88065b4ee1;hpb=90155b8a9719ada6522a320a3315b4e698fdd970;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SpecialUnlockdb.php b/includes/SpecialUnlockdb.php index 5e51e8add4..74b794ddd8 100644 --- a/includes/SpecialUnlockdb.php +++ b/includes/SpecialUnlockdb.php @@ -1,6 +1,7 @@ isDeveloper() ) { - $wgOut->developerRequired(); + if( !$wgUser->isAllowed( 'siteadmin' ) ) { + $wgOut->permissionRequired( 'siteadmin' ); return; } - $action = $wgRequest->getText( 'action' ); + + $action = $wgRequest->getVal( 'action' ); $f = new DBUnlockForm(); - if ( "success" == $action ) { $f->showSuccess(); } - else if ( "submit" == $action ) { $f->doSubmit(); } - else { $f->showForm( "" ); } + if ( "success" == $action ) { + $f->showSuccess(); + } else if ( "submit" == $action && $wgRequest->wasPosted() && + $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) { + $f->doSubmit(); + } else { + $f->showForm( "" ); + } } /** * + * @addtogroup SpecialPage */ class DBUnlockForm { function showForm( $err ) { - global $wgOut, $wgUser, $wgLang; + global $wgOut, $wgUser; + + global $wgReadOnlyFile; + if( !file_exists( $wgReadOnlyFile ) ) { + $wgOut->addWikiMsg( 'databasenotlocked' ); + return; + } $wgOut->setPagetitle( wfMsg( "unlockdb" ) ); - $wgOut->addWikiText( wfMsg( "unlockdbtext" ) ); + $wgOut->addWikiMsg( "unlockdbtext" ); if ( "" != $err ) { $wgOut->setSubtitle( wfMsg( "formerror" ) ); - $wgOut->addHTML( "

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

' . htmlspecialchars( $err ) . "

\n" ); } - $lc = wfMsg( "unlockconfirm" ); - $lb = wfMsg( "unlockbtn" ); - $titleObj = Title::makeTitle( NS_SPECIAL, "Unlockdb" ); + $lc = htmlspecialchars( wfMsg( "unlockconfirm" ) ); + $lb = htmlspecialchars( wfMsg( "unlockbtn" ) ); + $titleObj = SpecialPage::getTitleFor( "Unlockdb" ); $action = $titleObj->escapeLocalURL( "action=submit" ); + $token = htmlspecialchars( $wgUser->editToken() ); + + $wgOut->addHTML( <<addHTML( "

-

- - - -
- -{$lc} -
  - -
-
\n" ); +
+ + + + + + + + + +
+ + {$lc}
  + +
+ +
+END +); } function doSubmit() { - global $wgOut, $wgUser, $wgLang; - global $wgRequest, $wgReadOnlyFile; + global $wgOut, $wgRequest, $wgReadOnlyFile; $wpLockConfirm = $wgRequest->getCheck( 'wpLockConfirm' ); if ( ! $wpLockConfirm ) { $this->showForm( wfMsg( "locknoconfirm" ) ); return; } - if ( ! unlink( $wgReadOnlyFile ) ) { - $wgOut->fileDeleteError( $wgReadOnlyFile ); + if ( @! unlink( $wgReadOnlyFile ) ) { + $wgOut->showFileDeleteError( $wgReadOnlyFile ); return; } - $titleObj = Title::makeTitle( NS_SPECIAL, "Unlockdb" ); + $titleObj = SpecialPage::getTitleFor( "Unlockdb" ); $success = $titleObj->getFullURL( "action=success" ); $wgOut->redirect( $success ); } function showSuccess() { - global $wgOut, $wgUser; + global $wgOut; global $ip; $wgOut->setPagetitle( wfMsg( "unlockdb" ) ); $wgOut->setSubtitle( wfMsg( "unlockdbsuccesssub" ) ); - $wgOut->addWikiText( wfMsg( "unlockdbsuccesstext", $ip ) ); + $wgOut->addWikiMsg( "unlockdbsuccesstext", $ip ); } } -?> +