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;