summaryrefslogtreecommitdiff
path: root/maintenance/createAndPromote.php
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/createAndPromote.php')
-rw-r--r--maintenance/createAndPromote.php48
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