[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/includes/specials/ -> SpecialUnlockdb.php (source)

   1  <?php
   2  /**
   3   * Implements Special:Unlockdb
   4   *
   5   * This program is free software; you can redistribute it and/or modify
   6   * it under the terms of the GNU General Public License as published by
   7   * the Free Software Foundation; either version 2 of the License, or
   8   * (at your option) any later version.
   9   *
  10   * This program is distributed in the hope that it will be useful,
  11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13   * GNU General Public License for more details.
  14   *
  15   * You should have received a copy of the GNU General Public License along
  16   * with this program; if not, write to the Free Software Foundation, Inc.,
  17   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18   * http://www.gnu.org/copyleft/gpl.html
  19   *
  20   * @file
  21   * @ingroup SpecialPage
  22   */
  23  
  24  /**
  25   * Implements Special:Unlockdb
  26   *
  27   * @ingroup SpecialPage
  28   */
  29  class SpecialUnlockdb extends FormSpecialPage {
  30  
  31  	public function __construct() {
  32          parent::__construct( 'Unlockdb', 'siteadmin' );
  33      }
  34  
  35  	public function requiresWrite() {
  36          return false;
  37      }
  38  
  39  	public function checkExecutePermissions( User $user ) {
  40          parent::checkExecutePermissions( $user );
  41          # If the lock file isn't writable, we can do sweet bugger all
  42          if ( !file_exists( $this->getConfig()->get( 'ReadOnlyFile' ) ) ) {
  43              throw new ErrorPageError( 'lockdb', 'databasenotlocked' );
  44          }
  45      }
  46  
  47  	protected function getFormFields() {
  48          return array(
  49              'Confirm' => array(
  50                  'type' => 'toggle',
  51                  'label-message' => 'unlockconfirm',
  52              ),
  53          );
  54      }
  55  
  56  	protected function alterForm( HTMLForm $form ) {
  57          $form->setWrapperLegend( false );
  58          $form->setHeaderText( $this->msg( 'unlockdbtext' )->parseAsBlock() );
  59          $form->setSubmitTextMsg( 'unlockbtn' );
  60      }
  61  
  62  	public function onSubmit( array $data ) {
  63          if ( !$data['Confirm'] ) {
  64              return Status::newFatal( 'locknoconfirm' );
  65          }
  66  
  67          $readOnlyFile = $this->getConfig()->get( 'ReadOnlyFile' );
  68          wfSuppressWarnings();
  69          $res = unlink( $readOnlyFile );
  70          wfRestoreWarnings();
  71  
  72          if ( $res ) {
  73              return Status::newGood();
  74          } else {
  75              return Status::newFatal( 'filedeleteerror', $readOnlyFile );
  76          }
  77      }
  78  
  79  	public function onSuccess() {
  80          $out = $this->getOutput();
  81          $out->addSubtitle( $this->msg( 'unlockdbsuccesssub' ) );
  82          $out->addWikiMsg( 'unlockdbsuccesstext' );
  83      }
  84  
  85  	protected function getGroupName() {
  86          return 'wiki';
  87      }
  88  }


Generated: Fri Nov 28 14:03:12 2014 Cross-referenced by PHPXref 0.7.1