- $res = XDB::query("SELECT nom, prenom, promo FROM auth_user_md5
- WHERE user_id={?} AND perms='pending'", $uid);
-
- if (list($nom, $prenom, $promo) = $res->fetchOneRow()) {
- $page->assign('prenom', $prenom);
- $page->assign('nom', $nom);
- $page->assign('promo', $promo);
-
- if (Post::has('valide')) {
- require_once('xorg.misc.inc.php');
- $email = trim(Post::v('mail'));
- $market = Marketing::get($uid, $emails);
- if (!isvalid_email_redirection($email)) {
- $page->trig("Email invalide !");
- } elseif ($market) {
+ $res = XDB::query(
+ "SELECT COUNT(*)
+ FROM auth_user_md5
+ WHERE user_id = {?} AND perms = 'pending'", $user->id());
+ if (!$res->fetchOneCell()) {
+ $page->kill("Cet utilisateur est déjà inscrit au site.");
+ }
+
+ // Displays the page, and handles the eventual user actions.
+ $page->assign('full_name', $user->fullName());
+ $page->assign('promo', $user->promo());
+
+ if (Post::has('valide')) {
+ S::assert_xsrf_token();
+ $email = trim(Post::v('mail'));
+
+ require_once 'emails.inc.php';
+ if (!isvalid_email_redirection($email)) {
+ $page->trigError("Email invalide !");
+ } else {
+ // On cherche les marketings précédents sur cette adresse
+ // email, en se restreignant au dernier mois
+
+ if (Marketing::get($user->id(), $email, true)) {