From bf273d6a51545b443bf2c97c9ef1bfdcf6ab3013 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Thu, 27 Jul 2006 19:15:47 +0000 Subject: [PATCH] Send a warning email to hotliners if a watched (ie already duplicated) email is given in register git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@685 839d8a87-29fc-0310-9880-83ba4fa771e5 --- include/register.inc.php | 17 +++++++++++++++++ modules/register.php | 37 +++++++++++++++++++++++++------------ 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/include/register.inc.php b/include/register.inc.php index e4e1c3b..638df13 100644 --- a/include/register.inc.php +++ b/include/register.inc.php @@ -241,6 +241,23 @@ function create_aliases (&$sub) } // }}} +// {{{ function send_alert_mail + +function send_alert_mail($state, $body) +{ + require_once("diogenes/diogenes.hermes.inc.php"); + $mailer = new HermesMailer(); + $mailer->setFrom("webmaster@polytechnique.org"); + $mailer->addTo("hotliners@polytechnique.org"); + $mailer->setSubject("ALERTE LORS DE L'INSCRIPTION de " + . $state['prenom'] . ' ' . $state['nom'] . '(' . $promo . ')'); + $mailer->setTxtBody($body + . "\n\nIndentifiants :\n" . var_export($state, true) + . "\n\nInformations de connexion :\n" . var_export($_SERVER, true)); + $mailer->send(); +} + +// }}} // {{{ function finish_ins function finish_ins($sub_state) diff --git a/modules/register.php b/modules/register.php index b15c9cb..0c78846 100644 --- a/modules/register.php +++ b/modules/register.php @@ -115,6 +115,7 @@ class RegisterModule extends PLModule break; case 3: + $alert = null; if (count($_POST)) { require_once('register.inc.php'); if (!isvalid_email(Post::v('email'))) { @@ -131,21 +132,30 @@ 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."; - - require_once("diogenes/diogenes.hermes.inc.php"); - $mailer = new HermesMailer(); - $mailer->setFrom("webmaster@polytechnique.org"); - $mailer->addTo("hotliners@polytechnique.org"); - $mailer->setSubject("ERREUR LORS DE L'INSCRIPTION de " - . $sub_state['prenom'] . ' ' . $sub_state['nom'] . '(' . $promo . ')'); - $mailer->setTxtBody( - "Date de naissance proposée $birth" - . "\n\nIndentifiants :\n" . var_export($sub_state, true) - . "\n\nInformations de connexion :\n" . var_export($_SERVER, true)); - $mailer->send(); + $alert = "Date de naissance proposée $birth\n\n"; } } + // Check if the given email is known as dangerous + $res = Xdb::iterRow("SELECT w.state, w.description, a.alias + FROM emails AS e + INNER JOIN emails_watch AS w ON (e.email = w.email AND w.state != 'safe') + INNER JOIN aliases AS a ON (e.uid = a.id AND a.type = 'a_vie') + WHERE e.email = {?} + ORDER BY a.alias", Post::v('email')); + $aliases = array(); + while(list($gstate, $gdescription, $alias) = $res->next()) { + $state = $gstate; + $description = $gdescription; + $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"; + } + if (isset($err)) { $err = join('
', $err); } else { @@ -157,6 +167,9 @@ class RegisterModule extends PLModule $sub_state['step'] = 4; finish_ins($sub_state); } + if (!is_null($alert)) { + send_alert_mail($sub_state, $alert); + } } break; } -- 2.1.4