diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2010-07-28 11:52:48 +0200 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2010-07-28 11:52:48 +0200 |
commit | 222b01f5169f1c7e69762e0e8904c24f78f71882 (patch) | |
tree | 8e932e12546bb991357ec48eb1638d1770be7a35 /maintenance/createAndPromote.php | |
parent | 00ab76a6b686e98a914afc1975812d2b1aaa7016 (diff) |
update to MediaWiki 1.16.0
Diffstat (limited to 'maintenance/createAndPromote.php')
-rw-r--r-- | maintenance/createAndPromote.php | 111 |
1 files changed, 59 insertions, 52 deletions
diff --git a/maintenance/createAndPromote.php b/maintenance/createAndPromote.php index a5a8f88d..391d1226 100644 --- a/maintenance/createAndPromote.php +++ b/maintenance/createAndPromote.php @@ -3,66 +3,73 @@ /** * Maintenance script to create an account and grant it administrator rights * - * @file + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html + * * @ingroup Maintenance * @author Rob Church <robchur@gmail.com> */ -$options = array( 'help', 'bureaucrat' ); -require_once( 'commandLine.inc' ); +require_once( dirname(__FILE__) . '/Maintenance.php' ); -if( isset( $options['help'] ) ) { - showHelp(); - exit( 1 ); -} +class CreateAndPromote extends Maintenance { -if( count( $args ) < 2 ) { - echo( "Please provide a username and password for the new account.\n" ); - die( 1 ); -} + public function __construct() { + parent::__construct(); + $this->mDescription = "Create a new user account with administrator rights"; + $this->addOption( "bureaucrat", "Grant the account bureaucrat rights" ); + $this->addArg( "username", "Username of new user" ); + $this->addArg( "password", "Password to set" ); + } -$username = $args[0]; -$password = $args[1]; + public function execute() { + $username = $this->getArg(0); + $password = $this->getArg(1); + + $this->output( wfWikiID() . ": Creating and promoting User:{$username}..." ); + + $user = User::newFromName( $username ); + if( !is_object( $user ) ) { + $this->error( "invalid username.", true ); + } elseif( 0 != $user->idForName() ) { + $this->error( "account exists.", true ); + } -echo( wfWikiID() . ": Creating and promoting User:{$username}..." ); + # Try to set the password + try { + $user->setPassword( $password ); + } catch( PasswordError $pwe ) { + $this->error( $pwe->getText(), true ); + } -# Validate username and check it doesn't exist -$user = User::newFromName( $username ); -if( !is_object( $user ) ) { - echo( "invalid username.\n" ); - die( 1 ); -} elseif( 0 != $user->idForName() ) { - echo( "account exists.\n" ); - die( 1 ); + # Insert the account into the database + $user->addToDatabase(); + $user->saveSettings(); + + # Promote user + $user->addGroup( 'sysop' ); + if( $this->hasOption( 'bureaucrat' ) ) + $user->addGroup( 'bureaucrat' ); + + # Increment site_stats.ss_users + $ssu = new SiteStatsUpdate( 0, 0, 0, 0, 1 ); + $ssu->doUpdate(); + + $this->output( "done.\n" ); + } } -# Insert the account into the database -$user->addToDatabase(); -$user->setPassword( $password ); -$user->saveSettings(); - -# Promote user -$user->addGroup( 'sysop' ); -if( isset( $option['bureaucrat'] ) ) - $user->addGroup( 'bureaucrat' ); - -# Increment site_stats.ss_users -$ssu = new SiteStatsUpdate( 0, 0, 0, 0, 1 ); -$ssu->doUpdate(); - -echo( "done.\n" ); - -function showHelp() { - echo( <<<EOT -Create a new user account with administrator rights - -USAGE: php createAndPromote.php [--bureaucrat|--help] <username> <password> - - --bureaucrat - Grant the account bureaucrat rights - --help - Show this help information - -EOT - ); -}
\ No newline at end of file +$maintClass = "CreateAndPromote"; +require_once( DO_MAINTENANCE );
\ No newline at end of file |