X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FcreateAndPromote.php;h=391d1226707831999fe8d028839e2529cdc2d49a;hb=373ae16b857af3f8b7110598aaa26ee527398d00;hp=7ef48e08c934cf3fafc4e95e569af9bbde7dd0d0;hpb=c771fc9c96aacb44b86ade5ecca68334c5d8213f;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/createAndPromote.php b/maintenance/createAndPromote.php index 7ef48e08c9..391d122670 100644 --- a/maintenance/createAndPromote.php +++ b/maintenance/createAndPromote.php @@ -3,44 +3,73 @@ /** * Maintenance script to create an account and grant it administrator rights * - * @addtogroup Maintenance + * 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 */ - -require_once( 'commandLine.inc' ); - -if( !count( $args ) == 2 ) { - echo( "Please provide a username and password for the new account.\n" ); - die( 1 ); -} - -$username = $args[0]; -$password = $args[1]; -echo( wfWikiID() . ": Creating and promoting User:{$username}..." ); +require_once( dirname(__FILE__) . '/Maintenance.php' ); -# 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 ); -} +class CreateAndPromote extends Maintenance { -# Insert the account into the database -$user->addToDatabase(); -$user->setPassword( $password ); -$user->setToken(); + 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" ); + } -# Promote user -$user->addGroup( 'sysop' ); + 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 ); + } -# Increment site_stats.ss_users -$ssu = new SiteStatsUpdate( 0, 0, 0, 0, 1 ); -$ssu->doUpdate(); + # Try to set the password + try { + $user->setPassword( $password ); + } catch( PasswordError $pwe ) { + $this->error( $pwe->getText(), true ); + } -echo( "done.\n" ); + # 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" ); + } +} -?> +$maintClass = "CreateAndPromote"; +require_once( DO_MAINTENANCE ); \ No newline at end of file