From 9b603df9b0f7caac80a19f4331f63773c0e3e0a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20T=C3=A4nzer?= Date: Tue, 11 May 2010 19:28:36 +0200 Subject: [PATCH] Initial version of the create-assurers script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michael Tänzer --- dbadm/create-assurers.php | 182 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100755 dbadm/create-assurers.php diff --git a/dbadm/create-assurers.php b/dbadm/create-assurers.php new file mode 100755 index 0000000..194ea8b --- /dev/null +++ b/dbadm/create-assurers.php @@ -0,0 +1,182 @@ +#!/usr/bin/php +db = $db; + } + + + public static function echoUsage($script_name){ + print 'Usage: ' . $script_name; ?> + + +Script to create more dummy assurer accounts (for use on the test system) +which can be used by the test manager to create automated assurances + + specifies how many new dummy accounts should be created + +createAssurers($quantity); + + $db->close(); + exit($status); + } + + + public function createAssurers($quantity){ + // get last assurer + $result = $this->db->query('select `mname` from `users` where `id`= + (select max(`id`) from `users` where `email` like + \'john.doe-___@example.com\')'); + $row = $result->fetch_assoc(); + if ($row === NULL){ + $last_assurer = 0; + printf("1\n"); + } else { + $last_assurer = (int)($row['mname']); + printf("2: \$last_assurer: %d\n", $last_assurer); + } + + + // prepare the statements + $insert_user = $this->db->prepare('insert into `users` set + `email` = ? , + `password` = \'invalid\' , + `fname` = ? , + `mname` = ? , + `lname` = \'Doe\' , + `suffix` = \'\' , + `dob` = ? , + `Q1` = SHA1(rand()) , + `Q2` = SHA1(rand()) , + `Q3` = SHA1(rand()) , + `Q4` = SHA1(rand()) , + `Q5` = SHA1(rand()) , + `A1` = SHA1(rand()) , + `A2` = SHA1(rand()) , + `A3` = SHA1(rand()) , + `A4` = SHA1(rand()) , + `A5` = SHA1(rand()) , + `created` = now() , + `uniqueID` = SHA1(rand()) , + `verified` = 1 , + `assurer` = 1 '); + $insert_user->bind_param('ssss', $email, $fname, $mname, $dob); + + $insert_email = $this->db->prepare('insert into `email` set + `email` = ? , + `hash` = \'\' , + `created` = now() , + `modified` = now() , + `memid` = ? '); + $insert_email->bind_param('si', $email, $memid); + + $insert_alerts = $this->db->prepare('insert into `alerts` set + `memid` = ? , + `general` = 0 , + `country` = 0 , + `regional` = 0 , + `radius` = 0 '); + $insert_alerts->bind_param('i', $memid); + + $insert_points = $this->db->prepare('insert into `notary` set + `from` = ? , + `to` = ? , + `points` = 150 , + `awarded` = 150 , + `location` = \'Init Points\' , + `date` = curdate() , + `method` = \'Administrative Increase\' , + `when` = now() '); + $insert_points->bind_param('ii', $memid, $memid); + + $insert_cats = $this->db->prepare('insert into `cats_passed` set + `user_id` = ? , + `pass_date` = now() , + `variant_id` = + (select `id` from `cats_variant` where `type_id` = 1) '); + $insert_cats->bind_param('i', $memid); + + + // do the actual work + for ($i = $last_assurer + 1; $i <= $last_assurer + $quantity; $i++){ + $email = sprintf('john.doe-%03u@example.com', $i); + $fname = sprintf('John %u', $i); + $mname = sprintf('%u', $i); + $dob = sprintf('19%02u-01-%02u', $i % 90, (int)(($i/90) + 1) ); + + $insert_user->execute(); + $memid = $insert_user->insert_id; + if ($memid == 0){ + fwrite(STDERR, "Error: didn't get a valid ID for the user\n"); + return 10; + } + + $insert_email->execute(); + $insert_alerts->execute(); + $insert_points->execute(); + $insert_cats->execute(); + + printf('Assurer number %u %s Doe <%s>'."\n". + 'born on %s with the ID %d has been added'."\n", $i, + $fname, $email, $dob, $memid); + } + + return 0; + } +} + + +CreateAssurers::main(); \ No newline at end of file