X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fregister.php;h=77dff4d4467cdea02260d2f4004b00925cd59866;hb=0baf0741b59974981aced47c7196a7a319b7f3e8;hp=6d73d7fc10e1f7c2dfdfbb10919c4f5ab1ba2fbe;hpb=1e33266a2f91e1af7a5cb3e8fbbc1c49ff9341f3;p=platal.git
diff --git a/modules/register.php b/modules/register.php
index 6d73d7f..77dff4d 100644
--- a/modules/register.php
+++ b/modules/register.php
@@ -1,6 +1,6 @@
fetchOneRow()) {
+ if (list($uid, $promo, $nom, $prenom, $ourmat, $watch) = $res->fetchOneRow()) {
$sub_state['uid'] = $uid;
$sub_state['hash'] = $hash;
$sub_state['promo'] = $promo;
$sub_state['nom'] = $nom;
$sub_state['prenom'] = $prenom;
$sub_state['ourmat'] = $ourmat;
+ $sub_state['watch'] = $watch;
XDB::execute(
"REPLACE INTO register_mstats (uid,sender,success)
@@ -76,7 +87,7 @@ class RegisterModule extends PLModule
$sub_state['step'] = 1;
if (isset($sub_state['hash'])) {
$sub_state['step'] = 3;
- require_once('register.inc.php');
+ require_once(dirname(__FILE__) . '/register/register.inc.php');
create_aliases($sub_state);
}
}
@@ -106,7 +117,7 @@ class RegisterModule extends PLModule
case 2:
if (count($_POST)) {
- require_once('register.inc.php');
+ require_once(dirname(__FILE__) . '/register/register.inc.php');
$sub_state['prenom'] = Post::v('prenom');
$sub_state['nom'] = Post::v('nom');
$sub_state['mat'] = Post::v('mat');
@@ -122,16 +133,15 @@ class RegisterModule extends PLModule
break;
case 3:
- $alert = null;
if (count($_POST)) {
- require_once('register.inc.php');
+ require_once(dirname(__FILE__) . '/register/register.inc.php');
if (!isvalid_email(Post::v('email'))) {
$err[] = "Le champ 'E-mail' n'est pas valide.";
} elseif (!isvalid_email_redirection(Post::v('email'))) {
$err[] = $sub_state['forlife']." doit renvoyer vers un email existant ".
- "valide, en particulier, il ne peut pas être renvoyé vers lui-même.";
+ "valide, en particulier, il ne peut pas être renvoyé vers lui-même.";
}
- $birth = Env::v('naissance');
+ $birth = trim(Env::v('naissance'));
if (!preg_match('/^[0-3][0-9][01][0-9][12][90][0-9][0-9]$/', $birth)) {
$err[] = "La 'Date de naissance' n'est pas correcte.";
} else {
@@ -139,7 +149,7 @@ class RegisterModule extends PLModule
$promo = (int)$sub_state['promo'];
if ($year > $promo - 15 || $year < $promo - 30) {
$err[] = "La 'Date de naissance' n'est pas correcte.";
- $alert = "Date de naissance proposée $birth\n\n";
+ $alert = "Date de naissance incorrecte a l'inscription - ";
}
}
@@ -157,10 +167,14 @@ class RegisterModule extends PLModule
$aliases[] = $alias;
}
if (count($aliases) != 0) {
- $alert .= "Email proposé : " . Post::v('email') . "\n"
- . "Ce mails est connu avec l'état $state :\n"
- . $description . "\n"
- . "Pour les alias :\n* " . join("\n* ", $aliases) . "\n\n";
+ $alert .= "Email surveille propose a l'inscription - ";
+ }
+ if ($sub_state['watch']) {
+ $alter .= "Inscription d'un utilisateur surveillé - ";
+ }
+
+ if (check_ip('unsafe')) {
+ unset($err);
}
if (isset($err)) {
@@ -171,17 +185,27 @@ class RegisterModule extends PLModule
substr($birth,2,2),
substr($birth,0,2));
$sub_state['email'] = Post::v('email');
- $sub_state['step'] = 4;
- finish_ins($sub_state);
- }
- if (!is_null($alert)) {
- send_alert_mail($sub_state, $alert);
+ if (check_ip('unsafe')) {
+ $err = "Une erreur s'est produite lors de l'inscription."
+ . " Merci de contacter register@polytechnique.org"
+ . " pour nous faire part de cette erreur";
+ $alert .= "Tentative d'inscription depuis une IP surveillee";
+ } else {
+ $sub_state['step'] = 4;
+ if (count($sub_state['backs']) >= 3) {
+ $alert .= "Fin d'une inscription hésitante";
+ }
+ finish_ins($sub_state);
+ }
}
}
break;
}
$_SESSION['sub_state'] = $sub_state;
+ if ($alert) {
+ send_warning_mail($alert);
+ }
$page->changeTpl('register/step'.intval($sub_state['step']).'.tpl');
if (isset($err)) {
$page->trig($err);
@@ -217,14 +241,14 @@ class RegisterModule extends PLModule
$page->kill("
Cette adresse n'existe pas, ou plus, sur le serveur.
Causes probables :
- - Vérifie que tu visites l'adresse du dernier
- e-mail reçu s'il y en a eu plusieurs.
- - Tu as peut-être mal copié l'adresse reçue par
- mail, vérifie-la à la main.
- - Tu as peut-être attendu trop longtemps pour
- confirmer. Les pré-inscriptions sont annulées
+
- Vérifie que tu visites l'adresse du dernier
+ e-mail reçu s'il y en a eu plusieurs.
+ - Tu as peut-être mal copié l'adresse reçue par
+ mail, vérifie-la à la main.
+ - Tu as peut-être attendu trop longtemps pour
+ confirmer. Les pré-inscriptions sont annulées
tous les 30 jours.
- - Tu es en fait déjà inscrit.
+ - Tu es en fait déjà inscrit.
");
}
@@ -269,11 +293,13 @@ class RegisterModule extends PLModule
$mymail->assign('prenom', $prenom);
$mymail->send();
- start_connexion($uid,false);
+ if (!start_connexion($uid,false)) {
+ return PL_FORBIDDEN;
+ }
$_SESSION['auth'] = AUTH_MDP;
/***********************************************************/
- /************* envoi d'un mail au démarcheur ***************/
+ /************* envoi d'un mail au démarcheur ***************/
/***********************************************************/
$res = XDB::iterRow(
"SELECT DISTINCT sa.alias, IF(s.nom_usage,s.nom_usage,s.nom) AS nom,
@@ -287,21 +313,42 @@ class RegisterModule extends PLModule
while (list($salias, $snom, $sprenom, $sfemme) = $res->next()) {
$mymail = new PlMailer();
- $mymail->setSubject("$prenom $nom s'est inscrit à Polytechnique.org !");
+ $mymail->setSubject("$prenom $nom s'est inscrit à Polytechnique.org !");
$mymail->setFrom('"Marketing Polytechnique.org" ');
$mymail->addTo("\"$sprenom $snom\" <$salias@{$globals->mail->domain}>");
- $msg = ($sfemme?'Chère':'Cher')." $sprenom,\n\n"
- . "Nous t'écrivons pour t'informer que {$prenom} {$nom} (X{$promo}), "
- . "que tu avais incité".($femme?'e':'')." à s'inscrire à Polytechnique.org, "
- . "vient à l'instant de terminer son inscription.\n\n"
- . "Merci de ta participation active à la reconnaissance de ce site !!!\n\n"
+ $msg = ($sfemme?'Chère':'Cher')." $sprenom,\n\n"
+ . "Nous t'écrivons pour t'informer que {$prenom} {$nom} (X{$promo}), "
+ . "que tu avais incité".($femme?'e':'')." à s'inscrire à Polytechnique.org, "
+ . "vient à l'instant de terminer son inscription.\n\n"
+ . "Merci de ta participation active à la reconnaissance de ce site !!!\n\n"
. "Bien cordialement,\n"
- . "L'équipe Polytechnique.org";
+ . "L'équipe Polytechnique.org";
$mymail->setTxtBody(wordwrap($msg, 72));
$mymail->send();
}
- XDB::execute("DELETE FROM register_marketing WHERE uid = {?}", $uid);
+ /**** send a mail to X.org administrators ****/
+ if ($globals->register->notif) {
+ $mymail = new PlMailer();
+ $mymail->setSubject("Inscription de $prenom $nom (X$promo)");
+ $mymail->setFrom('"Webmaster Polytechnique.org" ');
+ $mymail->addTo($globals->register->notif);
+ $msg = "$prenom $nom (X$promo) a terminé son inscription avec les données suivantes :\n"
+ . " - nom : $nom\n"
+ . " - prenom : $prenom\n"
+ . " - promo : $promo\n"
+ . " - naissance : $naissance\n"
+ . " - forlife : $forlife\n"
+ . " - email : $email\n"
+ . " - sexe : $femme\n"
+ . " - ip : " . (@$_SERVER['HTTP_X_FORWARDED_FOR'] ? $_SERVER['HTTP_X_FORWARDED_FOR']
+ : $_SERVER['REMOTE_ADDR']) . "\n"
+ . " - proxy : " . (@$_SERVER['HTTP_X_FORWARDED_FOR'] ? $_SERVER['REMOTE_ADDR'] : "") . "\n";
+ $mymail->setTxtBody($msg);
+ $mymail->send();
+ }
+
+ Marketing::clear($uid);
pl_redirect('register/success');
$page->assign('uid', $uid);
@@ -319,7 +366,7 @@ class RegisterModule extends PLModule
WHERE user_id={?}', $password,
S::v('uid'));
- $log =& S::v('log');
+ $log = S::v('log');
$log->log('passwd', '');
if (Cookie::v('ORGaccess')) {
@@ -330,8 +377,26 @@ class RegisterModule extends PLModule
$page->assign('mdpok', true);
}
+ $res = XDB::iterRow("SELECT sub, domain
+ FROM register_subs
+ WHERE uid = {?} AND type = 'list'
+ ORDER BY domain",
+ S::i('uid'));
+ $current_domain = null;
+ $lists = array();
+ while (list($sub, $domain) = $res->next()) {
+ if ($current_domain != $domain) {
+ $current_domain = $domain;
+ $client = new MMList(S::v('uid'), S::v('password'), $domain);
+ }
+ list($details, ) = $client->get_members($sub);
+ $lists["$sub@$domain"] = $details;
+ }
+ $page->assign_by_ref('lists', $lists);
+
$page->addJsLink('motdepasse.js');
}
}
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>