X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fplatal.php;h=f123ba75a096c67657139624a436a0778ea52c12;hb=89cb2025f5f2aed0be3994c89ac473aa11535853;hp=8146055962de2c1a4c2828a365efbd938467dac5;hpb=c1e98576e7de93ff40910bf7061bfcdfb1316ccb;p=platal.git diff --git a/modules/platal.php b/modules/platal.php index 8146055..f123ba7 100644 --- a/modules/platal.php +++ b/modules/platal.php @@ -1,6 +1,6 @@ fetchOneRow(); - - if ($naissance == $birth) { - $res = XDB::query("SELECT COUNT(*) - FROM emails - WHERE uid = {?} AND flags != 'panne' AND flags != 'filter'", $uid); - $count = intval($res->fetchOneCell()); - if ($count == 0) { - $page->assign('no_addr', true); - return; - } + $profile = Profile::get(Env::t('login')); + if (is_null($profile) || $profile->birthdate != $birth) { + $page->trigError('Les informations que tu as rentrées ne permettent pas de récupérer ton mot de passe.
'. + 'Si tu as un homonyme, utilise prenom.nom.promo comme login'); + return; + } - $page->assign('ok', true); + $user = $profile->owner(); + if ($user->state != 'active') { + $page->trigError('Ton compte n\'est pas activé.'); + return; + } + + $res = XDB::query("SELECT COUNT(*) + FROM emails + WHERE uid = {?} AND flags != 'panne' AND flags != 'filter'", $user->id()); + $count = intval($res->fetchOneCell()); + if ($count == 0) { + $page->assign('no_addr', true); + return; + } - $url = rand_url_id(); - XDB::execute('INSERT INTO perte_pass (certificat,uid,created) - VALUES ({?},{?},NOW())', $url, $uid); + $page->assign('ok', true); + + $url = rand_url_id(); + XDB::execute('INSERT INTO perte_pass (certificat,uid,created) + VALUES ({?},{?},NOW())', $url, $user->id()); + $res = XDB::query('SELECT email + FROM emails + WHERE uid = {?} AND email = {?}', + $user->id(), Post::v('email')); + if ($res->numRows()) { + $mails = $res->fetchOneCell(); + } else { $res = XDB::query('SELECT email FROM emails - WHERE uid = {?} AND email = {?}', - $uid, Post::v('email')); - if ($res->numRows()) { - $mails = $res->fetchOneCell(); - } else { - $res = XDB::query('SELECT email - FROM emails - WHERE uid = {?} AND NOT FIND_IN_SET("filter", flags)', $uid); - $mails = implode(', ', $res->fetchColumn()); - } - $mymail = new PlMailer(); - $mymail->setFrom('"Gestion des mots de passe" mail->domain . '>'); - $mymail->addTo($mails); - $mymail->setSubject('Ton certificat d\'authentification'); - $mymail->setTxtBody("Visite la page suivante qui expire dans six heures : + WHERE uid = {?} AND NOT FIND_IN_SET("filter", flags)', $user->id()); + $mails = implode(', ', $res->fetchColumn()); + } + $mymail = new PlMailer(); + $mymail->setFrom('"Gestion des mots de passe" mail->domain . '>'); + $mymail->addTo($mails); + $mymail->setSubject('Ton certificat d\'authentification'); + $mymail->setTxtBody("Visite la page suivante qui expire dans six heures : {$globals->baseurl}/tmpPWD/$url Si en cliquant dessus tu n'y arrives pas, copie intégralement l'adresse dans la barre de ton navigateur. Si tu n'as pas utilisé ce lien dans six heures, tu peux tout simplement recommencer cette procédure. @@ -350,14 +354,10 @@ Polytechnique.org Email envoyé à ".Env::v('login') . (Post::has('email') ? " Adresse de secours : " . Post::v('email') : "")); - $mymail->send(); + $mymail->send(); - // on cree un objet logger et on log l'evenement - S::logger(uid)->log('recovery', $mails); - } else { - $page->trigError('Les informations que tu as rentrées ne permettent pas de récupérer ton mot de passe.
'. - 'Si tu as un homonyme, utilise prenom.nom.promo comme login'); - } + // on cree un objet logger et on log l'evenement + S::logger($user->id())->log('recovery', $mails); } function handler_tmpPWD(&$page, $certif = null) @@ -448,8 +448,10 @@ Adresse de secours : " . Post::v('email') : "")); Platal::session()->killLoginFormCookies(); } - S::logger()->log('deconnexion', @$_SERVER['HTTP_REFERER']); - Platal::session()->destroy(); + if (S::logged()) { + S::logger()->log('deconnexion', @$_SERVER['HTTP_REFERER']); + Platal::session()->destroy(); + } if (Get::has('redirect')) { http_redirect(rawurldecode(Get::v('redirect')));