MediaWiki  master
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 }
SpecialUnlockdb
Implements Special:Unlockdb.
Definition: SpecialUnlockdb.php:29
SpecialPage\msg
msg( $key,... $params)
Wrapper around wfMessage that sets the current context.
Definition: SpecialPage.php:828
StatusValue\newFatal
static newFatal( $message,... $parameters)
Factory function for fatal errors.
Definition: StatusValue.php:70
SpecialPage\getOutput
getOutput()
Get the OutputPage being used for this instance.
Definition: SpecialPage.php:744
FormSpecialPage
Special page which uses an HTMLForm to handle processing.
Definition: FormSpecialPage.php:31
$res
$res
Definition: testCompression.php:57
SpecialUnlockdb\doesWrites
doesWrites()
Indicates whether this special page may perform database writes.
Definition: SpecialUnlockdb.php:35
SpecialUnlockdb\__construct
__construct()
Definition: SpecialUnlockdb.php:31
SpecialUnlockdb\alterForm
alterForm(HTMLForm $form)
Play with the HTMLForm if you need to more substantially.
Definition: SpecialUnlockdb.php:60
SpecialPage\getConfig
getConfig()
Shortcut to get main config object.
Definition: SpecialPage.php:794
SpecialUnlockdb\onSuccess
onSuccess()
Do something exciting on successful processing of the form, most likely to show a confirmation messag...
Definition: SpecialUnlockdb.php:83
SpecialUnlockdb\requiresWrite
requiresWrite()
Whether this action requires the wiki not to be locked.
Definition: SpecialUnlockdb.php:39
StatusValue\newGood
static newGood( $value=null)
Factory function for good results.
Definition: StatusValue.php:82
HTMLForm\setWrapperLegend
setWrapperLegend( $legend)
Prompt the whole form to be wrapped in a "<fieldset>", with this text as its "<legend>" element.
Definition: HTMLForm.php:1566
SpecialUnlockdb\getFormFields
getFormFields()
Get an HTMLForm descriptor array.
Definition: SpecialUnlockdb.php:51
SpecialUnlockdb\getGroupName
getGroupName()
Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-gro...
Definition: SpecialUnlockdb.php:93
SpecialUnlockdb\checkExecutePermissions
checkExecutePermissions(User $user)
Called from execute() to check if the given user can perform this action.
Definition: SpecialUnlockdb.php:43
SpecialUnlockdb\onSubmit
onSubmit(array $data)
Process the form on POST submission.
Definition: SpecialUnlockdb.php:66
ErrorPageError
An error page which can definitely be safely rendered using the OutputPage.
Definition: ErrorPageError.php:30
User
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
Definition: User.php:55
SpecialUnlockdb\getDisplayFormat
getDisplayFormat()
Get display format for the form.
Definition: SpecialUnlockdb.php:89
HTMLForm
Object handling generic submission, CSRF protection, layout and other logic for UI forms in a reusabl...
Definition: HTMLForm.php:135