0) { if ($deletion_count = deleteUsers($to_delete)) { $successes[] = lang("ACCOUNT_DELETIONS_SUCCESSFUL", array($deletion_count)); } else { $errors[] = lang("SQL_ERROR"); } } } $text_area = $_POST['userUpload']; // Iterate through each row $all_rows=preg_split("/((\r?\n)|(\r\n?))/", $_POST['userUpload']); foreach ($all_rows as $row) { if (empty($row) or $row[0] === '#') continue; $fields = preg_split("/,/", $row); if(count($fields) < 3) { $errors[] = "Warning: Ignoring row not in correct format: ".htmlspecialchars($row); continue; } $username = trim($fields[0]); $displayname = trim($fields[1]); $email = trim($fields[2]); $title = trim($fields[3]); if(!isValidEmail($email)) { $errors[] = "Enter a valid email for row: ".htmlspecialchars($row); continue; } // generate the temporary password $password = generatePassword(); //Construct a user object $user = new User($username,$displayname,$password,$email); //Checking this flag tells us whether there were any errors such as possible data duplication occured if(!$user->status) { if($user->username_taken) $localerrors[] = lang("ACCOUNT_USERNAME_IN_USE",array($username)); if($user->displayname_taken) $localerrors[] = lang("ACCOUNT_DISPLAYNAME_IN_USE",array($displayname)); if($user->email_taken) $localerrors[] = lang("ACCOUNT_EMAIL_IN_USE",array($email)); } else { //Attempt to add the user to the database, carry out finishing tasks like emailing the user (if required) $user->userCakeAddUser(); //This doesn't return anything itself if($user->mail_failure) $localerrors[] = lang("MAIL_ERROR"); if($user->sql_failure) $localerrors[] = lang("SQL_ERROR"); if(strlen($title) >= 50) { $localerrors[] = "Warning: User".$username." added but failed to set title: ".lang("ACCOUNT_TITLE_CHAR_LIMIT",array(1,50)); } else if (count($localerrors) == 0 && strlen($title) > 0) { $user_id = fetchUserId($username); //So stupid, when you create a user, it doesn't return the user id if (!updateTitle($user_id, $title)) { $localerrors[] = "Warning: User ".$username." added but failed to set title: ". lang("SQL_ERROR"); } } } if(count($localerrors) == 0) { $users[] = [$username, $password]; //Push user onto array //$successes[] = ($user->success); } else { $errors = array_merge($errors, $localerrors); } } if(count($users) > 0) { $successes[] = (count($users)." users created."); $successes[] = ("The list of usernames and passwords follow. You must save this!"); foreach($users as $user) { $successes[] = $user[0].",".$user[1]; } } } } require_once("models/header.php"); startPage(); echo notificationBlock($errors,$successes); echo '
Upload users
'; if ($show_form) { /* I can't get fucking file uploads to fucking work with fucking nginx echo "

Please provide a CSV file of usernames and email addresses.

Click here for an example file.

Upload
"; */ echo "

Action to take on adding users:

Keep existing users and add these users

Purge existing users and add these users

Enter or copy/paste user information below (resize the text area if necessary):

"; } echo '
'; finishPage(); ?>