Last modified on 30 December 2013, at 00:32

Manual talk:CreateAndPromote.php

Return to "CreateAndPromote.php" page.

Helpful pageEdit

CreateUser (without promote)Edit

I created a version of this maintenance script (createUser.php) that just creates a user, but doesn't do any promotion. I added settings of the user's real name as well. I hope this is helpful to people.


<?php

/**
 * Maintenance script to create an account
 *
 * 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 <[email protected]>
 */

require_once( dirname(__FILE__) . '/Maintenance.php' );

class CreateUser extends Maintenance {

        public function __construct() {
                parent::__construct();
                $this->mDescription = "Create a new user account";
                $this->addArg( "username", "Username of new user" );
                $this->addArg( "password", "Password to set" );
                $this->addArg( "realname", "Real name for user" );
        }

        public function execute() {
                $username = $this->getArg(0);
                $password = $this->getArg(1);
                $realname = $this->getArg(2);

                $this->output( wfWikiID() . ": Creating User:{$username}..." );

                $user = User::newFromName( $username );
                if( !is_object( $user ) ) {
                        $this->error( "invalid username.", true );
                } elseif( 0 != $user->idForName() ) {
                        $this->error( "account exists.", true );
                }

                # Try to set the password
                try {
                        $user->setPassword( $password );
                } catch( PasswordError $pwe ) {
                        $this->error( $pwe->getText(), true );
                }

                # Set real name
                $user->setRealName( $realname );

                # Insert the account into the database
                $user->addToDatabase();
                $user->saveSettings();

                # Increment site_stats.ss_users
                $ssu = new SiteStatsUpdate( 0, 0, 0, 0, 1 );
                $ssu->doUpdate();

                $this->output( "done.\n" );
        }
}

$maintClass = "CreateUser";
require_once( DO_MAINTENANCE );

Dmulter 17:19, 11 January 2011 (UTC)

Batch CreateEdit

Is there any way to use this script to create multiple users without having to execute it over and over again? --Zackmann08 (talk) 14:45, 17 July 2012 (UTC)

Maybe create a script that puts the list of users in an array and then does a shell_exec foreach of them? Leucosticte (talk) 00:32, 30 December 2013 (UTC)