query($sql); $first_name = NULL; $last_name = NULL; $username = NULL; $note = NULL; $email = NULL; if ($res->fetchColumn() > 0) { $sql = "SELECT first_name, last_name, username, note, email FROM registrations WHERE admin_token = '" . $token . "' AND state = " . RegisterState::PendingAdminVerify . " LIMIT 1;"; foreach ($db->query($sql) as $row) { // will only be executed once $first_name = $row["first_name"]; $last_name = $row["last_name"]; $username = $row["username"]; $note = $row["note"]; $email = $row["email"]; } } else { throw new Exception($language["UNKNOWN_TOKEN"]); } if ($action == RegisterState::RegistrationAccepted) { $db->exec("UPDATE registrations SET state = " . RegisterState::PendingRegistration . " WHERE admin_token = '" . $token. "';"); // register user require_once("../MatrixConnection.php"); $mxConn = new MatrixConnection($homeserver, $access_token); // generate a password with 8 characters $password = bin2hex(openssl_random_pseudo_bytes(4)); $res = $mxConn->register($username, $password, $registration_shared_secret); if ($res) { // send registration_success $res = send_mail_registration_success($homeserver, $first_name . " " . $last_name, $email, $username, $password, $howToURL); if ($res) { $db->exec("UPDATE registrations SET state = " . RegisterState::AllDone . " WHERE admin_token = '" . $token. "';"); } else { $db->exec("UPDATE registrations SET state = " . RegisterState::PendingSendRegistrationMail . " WHERE admin_token = '" . $token. "';"); } } else { send_mail_registration_allowed_but_failed($homeserver, $first_name . " " . $last_name, $email); $mxMsg = new MatrixMessage(); $mxMsg->set_type("m.text"); $mxMsg->set_body("Fehler beim Registrieren von " . $first_name . " " . $last_name . "."); $mxConn->send($register_room, $mxMsg); throw new Exception($language["REGISTRATION_FAILED"]); } print("
" . $language["ADMIN_REGISTER_ACCEPTED_BODY"] . "
"); } elseif ($action == RegisterState::RegistrationDeclined) { $db->exec("UPDATE registrations SET state = " . RegisterState::RegistrationDeclined . " WHERE admin_token = '" . $token. "';"); send_mail_registration_decline($homeserver, $first_name . " " . $last_name, $email, $decline_reason); print("" . $language["ADMIN_REGISTER_DECLINED_BODY"] . "
"); } else { print("