diff options
Diffstat (limited to 'maintenance/createAndPromote.php')
-rw-r--r-- | maintenance/createAndPromote.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/maintenance/createAndPromote.php b/maintenance/createAndPromote.php new file mode 100644 index 00000000..df29c114 --- /dev/null +++ b/maintenance/createAndPromote.php @@ -0,0 +1,48 @@ +<?php + +/** + * Maintenance script to create an account and grant it administrator rights + * + * @package MediaWiki + * @subpackage Maintenance + * @author Rob Church <robchur@gmail.com> + */ + +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]; + +global $wgDBname; +echo( "{$wgDBname}: Creating and promoting User:{$username}..." ); + +# 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->setPassword( $password ); +$user->setToken(); + +# Promote user +$user->addGroup( 'sysop' ); + +# Increment site_stats.ss_users +$ssu = new SiteStatsUpdate( 0, 0, 0, 0, 1 ); +$ssu->doUpdate(); + +echo( "done.\n" ); + +?>
\ No newline at end of file |