MediaWiki REL1_31
SpecialUnlockdb.php
Go to the documentation of this file.
1<?php
30
31 public function __construct() {
32 parent::__construct( 'Unlockdb', 'siteadmin' );
33 }
34
35 public function doesWrites() {
36 return false;
37 }
38
39 public function requiresWrite() {
40 return false;
41 }
42
43 public function checkExecutePermissions( User $user ) {
44 parent::checkExecutePermissions( $user );
45 # If the lock file isn't writable, we can do sweet bugger all
46 if ( !file_exists( $this->getConfig()->get( 'ReadOnlyFile' ) ) ) {
47 throw new ErrorPageError( 'lockdb', 'databasenotlocked' );
48 }
49 }
50
51 protected function getFormFields() {
52 return [
53 'Confirm' => [
54 'type' => 'toggle',
55 'label-message' => 'unlockconfirm',
56 ],
57 ];
58 }
59
60 protected function alterForm( HTMLForm $form ) {
61 $form->setWrapperLegend( false )
62 ->setHeaderText( $this->msg( 'unlockdbtext' )->parseAsBlock() )
63 ->setSubmitTextMsg( 'unlockbtn' );
64 }
65
66 public function onSubmit( array $data ) {
67 if ( !$data['Confirm'] ) {
68 return Status::newFatal( 'locknoconfirm' );
69 }
70
71 $readOnlyFile = $this->getConfig()->get( 'ReadOnlyFile' );
72 Wikimedia\suppressWarnings();
73 $res = unlink( $readOnlyFile );
74 Wikimedia\restoreWarnings();
75
76 if ( $res ) {
77 return Status::newGood();
78 } else {
79 return Status::newFatal( 'filedeleteerror', $readOnlyFile );
80 }
81 }
82
83 public function onSuccess() {
84 $out = $this->getOutput();
85 $out->addSubtitle( $this->msg( 'unlockdbsuccesssub' ) );
86 $out->addWikiMsg( 'unlockdbsuccesstext' );
87 }
88
89 protected function getDisplayFormat() {
90 return 'ooui';
91 }
92
93 protected function getGroupName() {
94 return 'wiki';
95 }
96}
An error page which can definitely be safely rendered using the OutputPage.
Special page which uses an HTMLForm to handle processing.
Object handling generic submission, CSRF protection, layout and other logic for UI forms.
Definition HTMLForm.php:130
getOutput()
Get the OutputPage being used for this instance.
msg( $key)
Wrapper around wfMessage that sets the current context.
getConfig()
Shortcut to get main config object.
Implements Special:Unlockdb.
alterForm(HTMLForm $form)
Play with the HTMLForm if you need to more substantially.
onSuccess()
Do something exciting on successful processing of the form, most likely to show a confirmation messag...
doesWrites()
Indicates whether this special page may perform database writes.
checkExecutePermissions(User $user)
Called from execute() to check if the given user can perform this action.
requiresWrite()
Whether this action requires the wiki not to be locked.
getGroupName()
Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-gro...
onSubmit(array $data)
Process the form on POST submission.
getFormFields()
Get an HTMLForm descriptor array.
getDisplayFormat()
Get display format for the form.
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
Definition User.php:53
$res
Definition database.txt:21
this hook is for auditing only or null if authentication failed before getting that far or null if we can t even determine that probably a stub it is not rendered in wiki pages or galleries in category pages allow injecting custom HTML after the section Any uses of the hook need to handle escaping see BaseTemplate::getToolbox and BaseTemplate::makeListItem for details on the format of individual items inside of this array or by returning and letting standard HTTP rendering take place modifiable or by returning false and taking over the output $out
Definition hooks.txt:864