From 370e83bb0dfd0c70de268c93bf07ad5ee0897192 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Fri, 15 Aug 2008 01:29:47 +0200 Subject: Update auf 1.13.0 --- includes/specials/SpecialUnlockdb.php | 107 ++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 includes/specials/SpecialUnlockdb.php (limited to 'includes/specials/SpecialUnlockdb.php') diff --git a/includes/specials/SpecialUnlockdb.php b/includes/specials/SpecialUnlockdb.php new file mode 100644 index 00000000..0bf7e5aa --- /dev/null +++ b/includes/specials/SpecialUnlockdb.php @@ -0,0 +1,107 @@ +isAllowed( 'siteadmin' ) ) { + $wgOut->permissionRequired( 'siteadmin' ); + return; + } + + $action = $wgRequest->getVal( 'action' ); + $f = new DBUnlockForm(); + + if ( "success" == $action ) { + $f->showSuccess(); + } else if ( "submit" == $action && $wgRequest->wasPosted() && + $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) { + $f->doSubmit(); + } else { + $f->showForm( "" ); + } +} + +/** + * @ingroup SpecialPage + */ +class DBUnlockForm { + function showForm( $err ) + { + global $wgOut, $wgUser; + + global $wgReadOnlyFile; + if( !file_exists( $wgReadOnlyFile ) ) { + $wgOut->addWikiMsg( 'databasenotlocked' ); + return; + } + + $wgOut->setPagetitle( wfMsg( "unlockdb" ) ); + $wgOut->addWikiMsg( "unlockdbtext" ); + + if ( "" != $err ) { + $wgOut->setSubtitle( wfMsg( "formerror" ) ); + $wgOut->addHTML( '

' . htmlspecialchars( $err ) . "

\n" ); + } + $lc = htmlspecialchars( wfMsg( "unlockconfirm" ) ); + $lb = htmlspecialchars( wfMsg( "unlockbtn" ) ); + $titleObj = SpecialPage::getTitleFor( "Unlockdb" ); + $action = $titleObj->escapeLocalURL( "action=submit" ); + $token = htmlspecialchars( $wgUser->editToken() ); + + $wgOut->addHTML( << + + + + + + + + + +
+ + {$lc}
  + +
+ + +END +); + + } + + function doSubmit() { + global $wgOut, $wgRequest, $wgReadOnlyFile; + + $wpLockConfirm = $wgRequest->getCheck( 'wpLockConfirm' ); + if ( ! $wpLockConfirm ) { + $this->showForm( wfMsg( "locknoconfirm" ) ); + return; + } + if ( @! unlink( $wgReadOnlyFile ) ) { + $wgOut->showFileDeleteError( $wgReadOnlyFile ); + return; + } + $titleObj = SpecialPage::getTitleFor( "Unlockdb" ); + $success = $titleObj->getFullURL( "action=success" ); + $wgOut->redirect( $success ); + } + + function showSuccess() { + global $wgOut; + global $ip; + + $wgOut->setPagetitle( wfMsg( "unlockdb" ) ); + $wgOut->setSubtitle( wfMsg( "unlockdbsuccesssub" ) ); + $wgOut->addWikiMsg( "unlockdbsuccesstext", $ip ); + } +} -- cgit v1.2.3-54-g00ecf