// Validate the email address format and domain.
require_once 'emails.inc.php';
+ $user = User::get($subState->s('uid'));
if (!isvalid_email(Post::v('email'))) {
$error[] = "Le champ 'Email' n'est pas valide.";
- } elseif (!isvalid_email_redirection(Post::v('email'))) {
+ } elseif (!isvalid_email_redirection(Post::v('email'), $user)) {
$error[] = $subState->s('forlife') . ' doit renvoyer vers un email existant '
. 'valide, en particulier, il ne peut pas être renvoyé vers lui-même.';
}
if (abs($ref_year - $year) > 2) {
$error[] = "La 'Date de naissance' n'est pas correcte.";
$alert[] = "Date de naissance incorrecte à l'inscription";
- $alert_details .= "\n * Date de naissance renseignée : " . Post::t('birthdate') . ' (date connue : ' . $subState->v('birthdateRef') . ')';
+ $alert_details .= "\n * Date de naissance renseignée : " . Post::t('birthdate');
+ if ($subState->v('birthdateRef') == '0000-00-00') {
+ $alert_details .= ' (date inconnue)';
+ } else {
+ $alert_details .= ' (date connue : ' . $subState->v('birthdateRef') . ')';
+ }
$subState->set('wrong_birthdate', $birth);
}
}
if ($subState->s('birthdateRef') != '0000-00-00'
&& $subState->s('birthdateRef') != $subState->s('birthdate')) {
$alert[] = "Date de naissance incorrecte à l'inscription";
- $alert_details .= "\n * Date de naissance renseignée : " . $subState->s('birthdate') . ' (date connue : ' . $subState->s('birthdateRef') . ')';
+ $alert_details .= "\n * Date de naissance renseignée : " . Post::t('birthdate');
+ if ($subState->v('birthdateRef') == '0000-00-00') {
+ $alert_details .= ' (date inconnue)';
+ } else {
+ $alert_details .= ' (date connue : ' . $subState->v('birthdateRef') . ')';
+ }
}
if ($bannedIp) {
$alert[] = "Tentative d'inscription depuis une IP surveillée";
$_SESSION['subState'] = $subState->dict();
if (count($alert)) {
- $alert_details = "Détails des alertes :" . $alert_details . "\n\n\n";
+ $alert_details = "Détails des alertes :" . $alert_details . "\n\n";
+ $alert_details .= 'Compte concerné : ' . $subState->s('forlife') . ' (redirection vers : '
+ . ($subState->s('email') == '' ? Post::t('email') : $subState->s('email')). ")\n\n\n";
send_warning_mail(implode(' - ', $alert), $alert_details);
}
$res = XDB::query("SELECT r.uid, p.pid, r.forlife, r.bestalias, r.mailorg2,
r.password, r.email, r.services, r.naissance,
ppn.lastname_initial, ppn.firstname_initial, pe.promo_year,
- pd.promo, p.sex, p.birthdate_ref, a.type
+ pd.promo, p.sex, p.birthdate_ref, a.type, a.email AS old_account_email
FROM register_pending AS r
INNER JOIN accounts AS a ON (r.uid = a.uid)
INNER JOIN account_profiles AS ap ON (a.uid = ap.uid AND FIND_IN_SET('owner', ap.perms))
}
list($uid, $pid, $forlife, $bestalias, $emailXorg2, $password, $email, $services,
- $birthdate, $lastname, $firstname, $yearpromo, $promo, $sex, $birthdate_ref, $type) = $res->fetchOneRow();
+ $birthdate, $lastname, $firstname, $yearpromo, $promo, $sex, $birthdate_ref, $type, $old_account_email) = $res->fetchOneRow();
$isX = ($type == 'x');
$mail_domain = User::$sub_mail_domains[$type] . $globals->mail->domain;
$redirect->add_email($email);
fix_bestalias($user);
+ // If the user was registered to some aliases and MLs, we must change
+ // the subscription to her forlife email.
+ if ($old_account_email) {
+ $listClient = new MMList($user);
+ $listClient->change_user_email($old_account_email, $user->forlifeEmail());
+ update_alias_user($old_account_email, $user->forlifeEmail());
+ }
+
// Try to start a session (so the user don't have to log in); we will use
// the password available in Post:: to authenticate the user.
- Platal::session()->start(AUTH_MDP);
+ Platal::session()->start(AUTH_PASSWD);
// Subscribe the user to the services she did request at registration time.
require_once 'newsletter.inc.php';
// Notify other users which were watching for her arrival.
XDB::execute('INSERT INTO contacts (uid, contact)
- SELECT uid, ni_id
+ SELECT uid, {?}
FROM watch_nonins
- WHERE ni_id = {?}', $uid);
+ WHERE ni_id = {?}', $pid, $uid);
XDB::execute('DELETE FROM watch_nonins
WHERE ni_id = {?}', $uid);
Platal::session()->updateNbNotifs();