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 }
static newFatal( $message,... $parameters)
Factory function for fatal errors.
Definition: StatusValue.php:69
getOutput()
Get the OutputPage being used for this instance.
Special page which uses an HTMLForm to handle processing.
The User object encapsulates all of the user-specific settings (user_id, name, rights, email address, options, last login time).
Definition: User.php:51
msg( $key,... $params)
Wrapper around wfMessage that sets the current context.
An error page which can definitely be safely rendered using the OutputPage.
Implements Special:Unlockdb.
alterForm(HTMLForm $form)
static newGood( $value=null)
Factory function for good results.
Definition: StatusValue.php:81
onSubmit(array $data)
getConfig()
Shortcut to get main config object.
checkExecutePermissions(User $user)
setWrapperLegend( $legend)
Prompt the whole form to be wrapped in a "<fieldset>", with this text as its "<legend>" element...
Definition: HTMLForm.php:1551