$templateEngine->assign('selectedvoucher', $_SESSION['selectedvoucher']);
     $templateEngine->display('wizard_confirmselection.tpl');
     break;
 case 'paymentpage':
     //TODO Create user account and lock it here, so it's ready for the plugin to do with as needed (i.e. send details)
     //var_dump($_SESSION);
     //var_dump($_POST);
     //var_dump($vouchers);
     if (!isset($_SESSION['PendingAccount'])) {
         /* Create our locked random user */
         $MaxMb = $vouchers[$_SESSION['selectedvoucher']]['MaxMb'];
         $MaxTime = $vouchers[$_SESSION['selectedvoucher']]['MaxTime'];
         $Expiry = expiry_for_group($vouchers[$_SESSION['selectedvoucher']]['VoucherGroup']);
         $Comment = $_SESSION['selectedvoucher'] . " Voucher purchased " . date();
         $Username = \Grase\Util::randomUsername(5);
         $Password = \Grase\Util::randomPassword(6);
         // TODO Maybe set expiry to a few days so if payment isn't valid then we expire soon, and after sucessful payment we update expiry?
         DatabaseFunctions::getInstance()->createUser($Username, $Password, $MaxMb, $MaxTime, $Expiry, false, $vouchers[$_SESSION['selectedvoucher']]['VoucherGroup'], $Comment);
         // Lock user account
         DatabaseFunctions::getInstance()->lockUser($Username, T_('Account Pending Payment and Activation'));
         // Store user account in session
         $_SESSION['PendingAccount'] = array('Username' => $Username, 'Password' => $Password);
     }
     /* */
     require_once 'paymentgateways/PaymentGatewayPlugin.class.php';
     if (!is_file('paymentgateways/' . $paymentgateways[$_SESSION['selectedpaymentgateway']]['pluginfile'])) {
         die('Invalid payment plugin<br/><form action="" method="POST"><input type="hidden" name="pgformsubmission" value="1"/><input name="restartwizard" type="submit" value="Restart Wizard"/>');
     }
     // TODO Clean up and make error detection lots lots better
     require_once 'paymentgateways/' . $paymentgateways[$_SESSION['selectedpaymentgateway']]['pluginfile'];
     // Recreate object each time
示例#2
0
 // We create the batch first, then add users to it (prevents us having unattached users if the batch dies for some reason)
 $batchID = $Settings->nextBatchID();
 $Settings->saveBatch($batchID, array(), $Auth->getUsername(), \Grase\Clean::text($_POST['Comment']));
 $Settings->setSetting('lastbatch', $batchID);
 $failedUsers = 0;
 for ($i = 0; $i < $user['numberoftickets']; $i++) {
     // Creating lots of users at once could timeout a script. Maybe add a set_time_limit(1) on each loop?
     if ($Settings->getSetting('simpleUsername')) {
         $username = \Grase\Util::randomLowercase($Settings->getSetting('usernameLength'));
     } else {
         $username = \Grase\Util::randomUsername($Settings->getSetting('usernameLength'));
     }
     if ($Settings->getSetting('numericPassword')) {
         $password = \Grase\Util::randomNumericPassword($Settings->getSetting('passwordLength'));
     } else {
         $password = \Grase\Util::randomPassword($Settings->getSetting('passwordLength'));
     }
     // Attempt to create user. Will error if it's not a unique username
     if (DatabaseFunctions::getInstance()->createUser($username, $password, $MaxMb, $MaxTime, expiry_for_group($group, $groupSettings), $groupSettings[$group]['ExpireAfter'], \Grase\Clean::text($_POST['Group']), \Grase\Clean::text($_POST['Comment']))) {
         AdminLog::getInstance()->log("Created new user {$username}");
         $Settings->addUserToBatch($batchID, $username);
         $createdUsernames[] = $username;
     } else {
         // Failed to create. Most likely not a unique username.
         // Try again but only for so long (i.e. all usernames are in use)
         $i--;
         // This really chokes up the logs, maybe don't log this? TODO
         AdminLog::getInstance()->log("Failed to created new user {$username}. Probably duplicate username");
         $failedUsers++;
         if ($failedUsers > 20) {
             AdminLog::getInstance()->log("Too many failed usernames, stopping batch creation");
示例#3
0
 private function createAutocreatePassword()
 {
     // Create the autocreatepassword setting, with a random string if it
     // doesn't already exist
     // Check that setting doesn't already exist as changing an existing
     // password will lock users out
     if (!$this->Settings->getSetting("autocreatepassword")) {
         $this->Settings->setSetting("autocreatepassword", Util::randomPassword(20));
         $this->rowsUpdated++;
     }
 }