Improve confirmation mails
Change-Id: Ida840dfc4c4477fd8b86a7dcb640360c96c99be1
diff --git a/index.php b/index.php
index ec70b9f..0ffa33c 100755
--- a/index.php
+++ b/index.php
@@ -27,7 +27,7 @@
$TEMPLATE = template_path();
-function send_confirmation_email(string $mail, object $smtp, string $url)
+function send_confirmation_email(string $mail, object $smtp, string $url, User $user)
{
include 'config.php';
$TEMPLATE = template_path();
@@ -35,8 +35,8 @@
send_mail($mail, $smtp, (object) [
"subject" => $MAIL_TEMPLATE->subject,
- "text" => str_replace("{{url}}", $url, $MAIL_TEMPLATE->text),
- "html" => str_replace("{{url}}", $url, $MAIL_TEMPLATE->html)
+ "text" => replace_all_user_variables($MAIL_TEMPLATE->text, $user, $url),
+ "html" => replace_all_user_variables($MAIL_TEMPLATE->html, $user, $url)
]);
}
@@ -118,6 +118,15 @@
return $error;
}
+function backup_user_in_session($user)
+{
+ $_SESSION['username'] = $user->user_name;
+ $_SESSION['first_name'] = $user->first_name;
+ $_SESSION['last_name'] = $user->last_name;
+ $_SESSION['email'] = $user->email;
+ $_SESSION['organization'] = $user->organization;
+}
+
function approve_request($user)
{
include 'config.php';
@@ -136,10 +145,10 @@
$smtp = $FALLBACK_SMTP;
else
$smtp = $SMTP;
- send_confirmation_email($user->email, $smtp, $url);
+ send_confirmation_email($user->email, $smtp, $url, $user);
$_SESSION['resend'] = generateRandomString(12);
$_SESSION['token'] = $token;
- $_SESSION['email'] = $user->email;
+ backup_user_in_session($user);
$TEMPLATE = template_path();
include $TEMPLATE . "confirm_your_email.htm";
}
@@ -288,19 +297,22 @@
case "resend":
if (isset($_GET['token']) && isset($_SESSION['resend']) && $_GET['token'] == $_SESSION['resend']) {
include $TEMPLATE . "resend_mail.htm";
+ $user = new User($_SESSION["username"], $_SESSION["first_name"], $_SESSION["last_name"], $_SESSION["email"], "", $_SESSION["organization"]);
$token = $_SESSION['token'];
$url = $BASE_URL . "?type=confirmation&token=" . $token;
$smtp = $FALLBACK_SMTP;
$address = $_SESSION["email"];
if (isset($_SESSION['recover'])) {
$url = $BASE_URL . "?type=password_change&token=" . $token;
- send_recovery_email($address, $smtp, $url);
+ send_recovery_email($address, $smtp, $url, $user);
unset($_SESSION['recover']);
} else
- send_confirmation_email($address, $smtp, $url);
+ send_confirmation_email($address, $smtp, $url, $user);
unset($_SESSION['resend']);
unset($_SESSION['token']);
- unset($_SESSION['email']);
+ # unset($_SESSION['email']);
+ } else {
+ echo "<h2>A second email has already been sent to " . $_SESSION['email'] .".</h2>";
}
break;