X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fplatal.php;h=f57f2705f004b7591536103fd909e54e7eced914;hb=c1a0ab3022938ae15d5ba3af8fdf01e7f991b1fb;hp=3be5bc15deaa00ef559bc59826ceb22ba4c01aea;hpb=c0436d0bd05bbaf2b3140d2a56c7f538d52bf0e6;p=platal.git diff --git a/modules/platal.php b/modules/platal.php index 3be5bc1..f57f270 100644 --- a/modules/platal.php +++ b/modules/platal.php @@ -21,7 +21,7 @@ function bugize($list) { - $list = preg_split('/,/', Env::s('libs'), -1, PREG_SPLIT_NO_EMPTY); + $list = preg_split('/,/', $list, -1, PREG_SPLIT_NO_EMPTY); $ans = array(); foreach ($list as $bug) { @@ -43,15 +43,15 @@ class PlatalModule extends PLModule 'changelog' => $this->make_hook('changelog', AUTH_PUBLIC), // Preferences thingies - 'prefs' => $this->make_hook('prefs', AUTH_COOKIE), - 'prefs/rss' => $this->make_hook('prefs_rss', AUTH_COOKIE), - 'prefs/webredirect' => $this->make_hook('webredir', AUTH_MDP, 'mail'), - 'prefs/skin' => $this->make_hook('skin', AUTH_COOKIE), + 'prefs' => $this->make_hook('prefs', AUTH_COOKIE, 'user'), + 'prefs/rss' => $this->make_hook('prefs_rss', AUTH_COOKIE, 'user'), + 'prefs/webredirect' => $this->make_hook('webredir', AUTH_MDP, 'mail'), + 'prefs/skin' => $this->make_hook('skin', AUTH_COOKIE, 'user'), // password related thingies - 'password' => $this->make_hook('password', AUTH_MDP), + 'password' => $this->make_hook('password', AUTH_MDP, 'user'), 'tmpPWD' => $this->make_hook('tmpPWD', AUTH_PUBLIC), - 'password/smtp' => $this->make_hook('smtppass', AUTH_MDP, 'mail'), + 'password/smtp' => $this->make_hook('smtppass', AUTH_MDP, 'mail'), 'recovery' => $this->make_hook('recovery', AUTH_PUBLIC), 'exit' => $this->make_hook('exit', AUTH_PUBLIC), 'review' => $this->make_hook('review', AUTH_PUBLIC), @@ -229,6 +229,7 @@ class PlatalModule extends PLModule $page->changeTpl('platal/password.tpl'); $page->setTitle('Mon mot de passe'); + $page->assign('do_auth', 0); } function handler_smtppass($page) @@ -275,7 +276,7 @@ class PlatalModule extends PLModule return; } - if (!ereg('[0-3][0-9][0-1][0-9][1][9]([0-9]{2})', Env::v('birth'))) { + if (!preg_match('/^[0-3][0-9][0-1][0-9][1][9]([0-9]{2})$/', Env::v('birth'))) { $page->trigError('Date de naissance incorrecte ou incohérente'); return; } @@ -339,12 +340,11 @@ Si en cliquant dessus tu n'y arrives pas, copie intégralement l'adresse dans la Polytechnique.org \"Le portail des élèves & anciens élèves de l'École polytechnique\" -Email envoyé à ".Env::v('login') . (Post::has('email') ? " -Adresse de secours : " . Post::v('email') : "")); +Email envoyé à ".Env::v('login') . (is_null($to) ? '' : ' +Adresse de secours : ' . $to)); $mymail->send(); - // on cree un objet logger et on log l'evenement - S::logger($user->id())->log('recovery', $mails); + S::logger($user->id())->log('recovery', is_null($to) ? $inactives_to . ', ' . $user->bestEmail() : $to); } function handler_tmpPWD($page, $certif = null) @@ -383,9 +383,20 @@ Adresse de secours : " . Post::v('email') : "")); } S::logger($uid)->log("passwd", ""); + + // 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); + $page->changeTpl('platal/tmpPWD.success.tpl'); } else { + $hruid = XDB::fetchOneCell('SELECT hruid + FROM accounts + WHERE uid = {?}', + $uid); $page->changeTpl('platal/password.tpl'); + $page->assign('hruid', $hruid); + $page->assign('do_auth', 1); } }