From ffeeebec3e88698a9a03f8c3f80b79b4b4129c06 Mon Sep 17 00:00:00 2001 From: "Pierre Habouzit (MadCoder" Date: Wed, 29 Dec 2004 10:40:13 +0000 Subject: [PATCH] renew cookie a little git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-172 --- htdocs/cookie_off.php | 37 ------------------------------ htdocs/cookie_on.php | 30 ------------------------ htdocs/javascript/do_challenge_response.js | 1 + htdocs/motdepassemd5.php | 16 +++++++++---- htdocs/preferences.php | 18 +++++++++++++-- include/xorg/session.inc.php | 9 +++++++- templates/password_prompt.head.tpl | 7 +++--- templates/password_prompt.tpl | 17 ++++++++++---- templates/password_prompt_logged.tpl | 9 +++++++- templates/preferences.tpl | 15 +++++------- 10 files changed, 65 insertions(+), 94 deletions(-) delete mode 100644 htdocs/cookie_off.php delete mode 100644 htdocs/cookie_on.php diff --git a/htdocs/cookie_off.php b/htdocs/cookie_off.php deleted file mode 100644 index 772e366..0000000 --- a/htdocs/cookie_off.php +++ /dev/null @@ -1,37 +0,0 @@ -log("cookie_off"); - -// si on a le cookie, et qu'on est pas identifié, -// s'enlever le cookie revient à se déconnecter -if(!identified()) { - session_destroy(); - $_SESSION = array(); - header("Location: index.php"); -} - -header("Location: preferences.php"); -?> diff --git a/htdocs/cookie_on.php b/htdocs/cookie_on.php deleted file mode 100644 index ce3cf1f..0000000 --- a/htdocs/cookie_on.php +++ /dev/null @@ -1,30 +0,0 @@ -log("cookie_on"); - -$page->run(); -?> diff --git a/htdocs/javascript/do_challenge_response.js b/htdocs/javascript/do_challenge_response.js index f3eab7c..806dc87 100644 --- a/htdocs/javascript/do_challenge_response.js +++ b/htdocs/javascript/do_challenge_response.js @@ -25,6 +25,7 @@ function doChallengeResponse() { document.forms.loginsub.response.value = MD5(str); document.forms.loginsub.username.value = document.forms.login.username.value; + document.forms.loginsub.remember.value = document.forms.login.remember.value; document.forms.login.password.value = ""; document.forms.loginsub.submit(); } diff --git a/htdocs/motdepassemd5.php b/htdocs/motdepassemd5.php index fe28399..4e7a7f7 100644 --- a/htdocs/motdepassemd5.php +++ b/htdocs/motdepassemd5.php @@ -21,13 +21,19 @@ require_once('xorg.inc.php'); -if (Env::has('response2')) { // la variable $response existe-t-elle ? - // OUI, alors changeons le mot de passe - $password = Post::get('response2'); - $sql = "UPDATE auth_user_md5 SET password='$password' WHERE user_id=".Session::getInt('uid'); - $log =& Session::getMixed('log'); +if (Env::has('response2')) { + $_SESSION['password'] = $password = Post::get('response2'); + + $sql = "UPDATE auth_user_md5 SET password='$password' WHERE user_id=".Session::getInt('uid'); $globals->db->query($sql); + + $log =& Session::getMixed('log'); $log->log('passwd', ''); + + if (Cookie::get('ORGaccess')) { + setcookie('ORGaccess', md5($password), (time()+25920000), '/', '' ,0); + } + new_skinned_page('motdepassemd5.success.tpl', AUTH_MDP); $page->run(); } diff --git a/htdocs/preferences.php b/htdocs/preferences.php index 104542c..6d49391 100644 --- a/htdocs/preferences.php +++ b/htdocs/preferences.php @@ -22,8 +22,22 @@ require_once("xorg.inc.php"); new_skinned_page('preferences.tpl', AUTH_COOKIE); -$has_cookie = (Cookie::has('ORGaccess') ? 'cookie' : ''); -$page->assign('has_cookie', $has_cookie); +if (Env::has('remember')) { + setcookie('ORGaccess', md5(Session::get('password')), (time()+25920000), '/', '' ,0); + $_SESSION['log']->log('cookie_on'); + header('Location: preferences.php'); +} + +if (Env::has('forget')) { + setcookie('ORGaccess', '', time() - 3600, '/', '', 0); + $_SESSION['log']->log("cookie_off"); + if (!identified()) { + session_destroy(); + $_SESSION = array(); + header('Location: index.php'); + } + header('Location: preferences.php'); +} $page->run($has_cookie); ?> diff --git a/include/xorg/session.inc.php b/include/xorg/session.inc.php index 0b27f0d..ddd62b3 100644 --- a/include/xorg/session.inc.php +++ b/include/xorg/session.inc.php @@ -96,6 +96,13 @@ class XorgSession extends DiogenesCoreSession $logger->log('auth_ok'); } start_connexion($uid, true); + if (Env::has('remember')) { + $cookie = md5(Session::get('password')); + setcookie('ORGaccess',$cookie,(time()+25920000),'/','',0); + if ($logger) { + $logger->log("cookie_on"); + } + } return true; } elseif ($logger) { $logger->log('auth_fail','bad password'); @@ -302,7 +309,7 @@ function start_connexion ($uid, $identified) } else { $logger = Session::getMixed('log', new DiogenesCoreLogger($uid)); $logger->log("connexion", $_SERVER['PHP_SELF']); - setcookie('ORGuid', $uid, (time()+25920000), '/', '', 0); + setcookie('ORGuid', $uid, (time()+25920000), '/', '', 0); } $_SESSION = $sess; diff --git a/templates/password_prompt.head.tpl b/templates/password_prompt.head.tpl index 3011924..09df2ca 100644 --- a/templates/password_prompt.head.tpl +++ b/templates/password_prompt.head.tpl @@ -17,9 +17,8 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************} - - - - + + + {* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/password_prompt.tpl b/templates/password_prompt.tpl index 3ff250f..e7ab668 100644 --- a/templates/password_prompt.tpl +++ b/templates/password_prompt.tpl @@ -35,7 +35,7 @@

Merci de rentrer ton mot de passe pour démarrer une connexion au site. Si tu n'es pas {insert name="getName"}, change le login ci-dessous, ou rends-toi sur -la page d'inscription. +la page d'inscription.

{/min_auth} @@ -52,7 +52,7 @@ Si tu n'es pas {insert name="getName"}, change le login ci-dessous, ou rends-toi Si tu n'es jamais venu sur le site, il faut t'enregistrer auprès de nous pour obtenir un accès. Polytechnique.org c'est l'e-mail des X, l'annuaire en ligne, plus un tas d'autres services. Nous te fournirons un accès le plus - rapidement possible. Clique ici pour nous demander tes + rapidement possible. Clique ici pour nous demander tes paramètres personnels. @@ -83,9 +83,15 @@ Si tu n'es pas {insert name="getName"}, change le login ci-dessous, ou rends-toi + -  [ ? ] - J'ai perdu mon mot de passe + Se souvenir de moi + + + + +  [ ? ] + mot de passe perdu ? @@ -94,7 +100,7 @@ Si tu n'es pas {insert name="getName"}, change le login ci-dessous, ou rends-toi

-Problème de connexion ? La réponse est là. +Problème de connexion ? La réponse est là.
(Activer obligatoirement le javascript)

@@ -112,6 +118,7 @@ Probl + diff --git a/templates/password_prompt_logged.tpl b/templates/password_prompt_logged.tpl index 4659612..a4c59a3 100644 --- a/templates/password_prompt_logged.tpl +++ b/templates/password_prompt_logged.tpl @@ -48,9 +48,15 @@ + + + Se souvenir de moi + + +  [ ? ] - J'ai perdu mon mot de passe + Mote passe perdu ? @@ -70,6 +76,7 @@
+
diff --git a/templates/preferences.tpl b/templates/preferences.tpl index c75e6ba..38c8570 100644 --- a/templates/preferences.tpl +++ b/templates/preferences.tpl @@ -70,20 +70,17 @@ - {if $has_cookie} -

Supprimer l'accès permanent

+ {if $smarty.cookies.ORGaccess} +

M'oublier

Clique sur le lien ci-dessus pour retirer l'accès sans mot de passe au site. Après avoir - cliqué, tu devras à nouveau entrer ton mot de passe pour accéder aux différentes pages - comme initialement. + cliqué, tu devras entrer ton mot de passe pour accéder aux différentes pages.
{else} -

Attribuer un cookie d'authentification permanente

+

Se souvenir de moi

- Cette option te permet de ne plus avoir à entrer ton mot de passe pour la majorité des pages - du site. Ce dernier reste cependant nécessaire pour le profil ou le changement de mot de - passe. Il s'agit d'une option destinée aux utilisateurs fréquents du site, plutôt à l'aise - avec l'informatique, et pour un ordinateur non partagé. + Cette option te permet de ne plus avoir à entrer ton mot de passe pour la majorité des pages du site. + Il s'agit d'une option destinée aux utilisateurs fréquents du site, et pour un ordinateur non partagé.
{/if} -- 2.1.4