Implementing user levels management. This is only a very basic interface and several...
[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
14 if ( ! $wgUser->isAllowed('siteadmin') ) {
15 $wgOut->developerRequired();
16 return;
17 }
18 $action = $wgRequest->getVal( 'action' );
19 $f = new DBUnlockForm();
20
21 if ( "success" == $action ) { $f->showSuccess(); }
22 else if ( "submit" == $action && $wgRequest->wasPosted() ) { $f->doSubmit(); }
23 else { $f->showForm( "" ); }
24 }
25
26 /**
27 *
28 * @package MediaWiki
29 * @subpackage SpecialPage
30 */
31 class DBUnlockForm {
32 function showForm( $err )
33 {
34 global $wgOut, $wgUser, $wgLang;
35
36 $wgOut->setPagetitle( wfMsg( "unlockdb" ) );
37 $wgOut->addWikiText( wfMsg( "unlockdbtext" ) );
38
39 if ( "" != $err ) {
40 $wgOut->setSubtitle( wfMsg( "formerror" ) );
41 $wgOut->addHTML( "<p><font color='red' size='+1'>{$err}</font>\n" );
42 }
43 $lc = wfMsg( "unlockconfirm" );
44 $lb = wfMsg( "unlockbtn" );
45 $titleObj = Title::makeTitle( NS_SPECIAL, "Unlockdb" );
46 $action = $titleObj->escapeLocalURL( "action=submit" );
47
48 $wgOut->addHTML( <<<END
49
50 <form id="unlockdb" method="post" action="{$action}">
51 <table border="0">
52 <tr>
53 <td align="right">
54 <input type="checkbox" name="wpLockConfirm" />
55 </td>
56 <td align="left">{$lc}</td>
57 </tr>
58 <tr>
59 <td>&nbsp;</td>
60 <td align="left">
61 <input type="submit" name="wpLock" value="{$lb}" />
62 </td>
63 </tr>
64 </table>
65 </form>
66 END
67 );
68
69 }
70
71 function doSubmit() {
72 global $wgOut, $wgUser, $wgLang;
73 global $wgRequest, $wgReadOnlyFile;
74
75 $wpLockConfirm = $wgRequest->getCheck( 'wpLockConfirm' );
76 if ( ! $wpLockConfirm ) {
77 $this->showForm( wfMsg( "locknoconfirm" ) );
78 return;
79 }
80 if ( @! unlink( $wgReadOnlyFile ) ) {
81 $wgOut->fileDeleteError( $wgReadOnlyFile );
82 return;
83 }
84 $titleObj = Title::makeTitle( NS_SPECIAL, "Unlockdb" );
85 $success = $titleObj->getFullURL( "action=success" );
86 $wgOut->redirect( $success );
87 }
88
89 function showSuccess() {
90 global $wgOut, $wgUser;
91 global $ip;
92
93 $wgOut->setPagetitle( wfMsg( "unlockdb" ) );
94 $wgOut->setSubtitle( wfMsg( "unlockdbsuccesssub" ) );
95 $wgOut->addWikiText( wfMsg( "unlockdbsuccesstext", $ip ) );
96 }
97 }
98
99 ?>