* Some code cleanup
[lhc/web/wiklou.git] / includes / SpecialUnlockdb.php
1 <?php
2 /**
3 *
4 * @package MediaWiki
5 * @subpackage SpecialPage
6 */
7
8 /**
9 *
10 */
11 function wfSpecialUnlockdb() {
12 global $wgUser, $wgOut, $wgRequest;
13 if( $wgUser->isAllowed( 'siteadmin' ) ) {
14 $form = new DBUnlockForm();
15 if( $action == 'success' ) {
16 $form->showSuccess();
17 } else if( $action == 'submit' && wgRequest->wasPosted() && $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) {
18 $form->doSubmit();
19 } else {
20 $form->showForm();
21 } else {
22 $wgOut->permissionRequired( 'siteadmin' );
23 return;
24 }
25 }
26
27 /**
28 *
29 * @package MediaWiki
30 * @subpackage SpecialPage
31 */
32 class DBUnlockForm {
33
34 function showForm( $error = false ) {
35 global $wgOut, $wgUser;
36 $wgOut->setPagetitle( wfMsg( 'unlockdb' ) );
37 $wgOut->addWikiText( wfMsg( 'unlockdbtext' ) );
38
39 if( $error ) {
40 $wgOut->setSubtitle( wfMsg( 'formerror' ) );
41 $wgOut->addHTML( '<p class="error">' . htmlspecialchars( $error ) . "</p>\n" );
42 }
43
44 $lc = htmlspecialchars( wfMsg( "unlockconfirm" ) );
45 $lb = htmlspecialchars( wfMsg( "unlockbtn" ) );
46 $titleObj = Title::makeTitle( NS_SPECIAL, "Unlockdb" );
47 $action = $titleObj->escapeLocalURL( "action=submit" );
48 $token = htmlspecialchars( $wgUser->editToken() );
49
50 $wgOut->addHTML( <<<END
51
52 <form id="unlockdb" method="post" action="{$action}">
53 <table border="0">
54 <tr>
55 <td align="right">
56 <input type="checkbox" name="wpLockConfirm" />
57 </td>
58 <td align="left">{$lc}</td>
59 </tr>
60 <tr>
61 <td>&nbsp;</td>
62 <td align="left">
63 <input type="submit" name="wpLock" value="{$lb}" />
64 </td>
65 </tr>
66 </table>
67 <input type="hidden" name="wpEditToken" value="{$token}" />
68 </form>
69 END
70 );
71
72 }
73
74 function doSubmit() {
75 global $wgOut, $wgUser, $wgRequest, $wgReadOnlyFile;
76
77 $wpLockConfirm = $wgRequest->getCheck( 'wpLockConfirm' );
78 if ( ! $wpLockConfirm ) {
79 $this->showForm( wfMsg( "locknoconfirm" ) );
80 return;
81 }
82 if ( @! unlink( $wgReadOnlyFile ) ) {
83 $wgOut->fileDeleteError( $wgReadOnlyFile );
84 return;
85 }
86 $titleObj = Title::makeTitle( NS_SPECIAL, "Unlockdb" );
87 $success = $titleObj->getFullURL( "action=success" );
88 $wgOut->redirect( $success );
89 }
90
91 function showSuccess() {
92 global $wgOut, $wgUser;
93 global $ip;
94
95 $wgOut->setPagetitle( wfMsg( "unlockdb" ) );
96 $wgOut->setSubtitle( wfMsg( "unlockdbsuccesssub" ) );
97 $wgOut->addWikiText( wfMsg( "unlockdbsuccesstext", $ip ) );
98 }
99 }
100
101 ?>