$this->uid, $this->session);
}
+ public function isValid($uid) {
+ return $uid == $this->uid;
+ }
/** Logs an action and its related data.
*
}
}
if ($response != $expected_response) {
+ if (!S::logged()) {
+ Platal::page()->trigError('Mot de passe ou nom d\'utilisateur invalide');
+ } else {
+ Platal::page()->trigError('Mot de passe invalide');
+ }
S::logger($uid)->log('auth_fail', 'bad password');
return null;
}
}
if ($level == AUTH_SUID) {
S::set('auth', AUTH_MDP);
- unset($_SESSION['log']);
}
// Retrieves main user properties.
Cookie::set('uid', $uid, 300);
if (S::i('auth_by_cookie') == $uid || Post::v('remember', 'false') == 'true') {
- Cookie::set('access', hash_encrypt($sess['password']), 300);
- if (S::i('auth_by_cookie') != $uid) {
- $logger->log("cookie_on");
- }
+ $this->setAccessCookie(false, S::i('auth_by_cookie') != $uid);
} else {
- Cookie::kill('access');
- $logger->log("cookie_off");
+ $this->killAccessCookie();
}
}
$n = select_notifs(false, S::i('uid'), S::v('watch_last'), false);
S::set('notifs', $n->numRows());
}
+
+ public function setAccessCookie($replace = false, $log = true) {
+ if (S::has('suid') || ($replace && !Cookie::blank('access'))) {
+ return;
+ }
+ require_once('secure_hash.inc.php');
+ Cookie::set('access', hash_encrypt(S::v('password')), 300, true);
+ if ($log) {
+ S::logger()->log('cookie_on');
+ }
+ }
+
+ public function killAccessCookie($log = true) {
+ Cookie::kill('access');
+ if ($log) {
+ S::logger()->log('cookie_off');
+ }
+ }
+
+ public function killLoginFormCookies() {
+ Cookie::kill('uid');
+ Cookie::kill('domain');
+ }
}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
-Subproject commit f09d3319de8a65f5eb11ce0e73a3dc08a72c4091
+Subproject commit 7c8d7022042ef34cbf8c16531a3b5eaecf46bfd2
}
}
- $log =& S::v('log');
- S::logger()->log('passwd', '');
-
- if (Cookie::v('access')) {
- Cookie::set('access', sha1($password), 300);
- S::logger()->log('cookie_on', '');
- }
+ S::logger()->log('passwd');
+ Platal::session()->setAccessCookie(true);
$page->changeTpl('platal/motdepasse.success.tpl');
$page->run();
}
if ($level == 'forget' || $level == 'forgetall') {
- Cookie::kill('access');
- S::logger()->log("cookie_off");
+ Platal::session()->killAccessCookie();
}
if ($level == 'forgetuid' || $level == 'forgetall') {
- Cookie::kill('uid');
- Cookie::kill('domain');
+ Platal::session()->killLoginFormCookies();
}
- $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
- S::logger()->log('deconnexion',$ref);
+ S::logger()->log('deconnexion', @$_SERVER['HTTP_REFERER']);
Platal::session()->destroy();
if (Get::has('redirect')) {
}
}
- $log = S::v('log');
- S::logger()->log('passwd', '');
-
- if (Cookie::v('access')) {
- require_once('secure_hash.inc.php');
- Cookie::set('access', hash_encrypt($password), 300);
- S::logger()->log('cookie_on', '');
- }
+ S::logger()->log('passwd');
+ Platal::session()->setAccessCookie(true);
$page->assign('mdpok', true);
}
</p>
{/if}
-{if $smarty.request.response}<!-- failed login code //-->
-{include core=triggers.tpl text="Erreur d'identification. Essaie à nouveau !" type="errors"}
-<br />
-{/if}
-
<form action="{$smarty.server.REQUEST_URI}" method="post" id="login" onsubmit="doChallengeResponse(); return false;" style="display: none">
<table class="bicol" cellpadding="4" summary="Formulaire de login">
<tr>
{* *}
{**************************************************************************}
+<h1>{icon name=error} Page sécurisée</h1>
-<div class="center">
- <table>
- <tr>
- <td>
- {icon name=error}
- </td>
- <td>
- <span class="smaller">
- <strong>
- Pour des raisons de <span class="erreur">sécurité</span>, il est obligatoire de taper ton mot de passe, même
- avec l'accès permanent, pour certaines opérations sensibles.
- </strong>
- </span>
- </td>
- <td>
- {icon name=error}
- </td>
- </tr>
- </table>
+<div>
+ La page que tu as demandée est classée comme sensible. Il est nécessaire de taper ton mot de passe
+ pour y accéder, même avec l'accès permanet activé.
</div>
<br />
<table class="tinybicol" cellpadding="4" summary="Formulaire de login">
<tr>
<td class="titre">
+ Nom d'utilisateur :
+ </td>
+ <td>{$smarty.session.hruid}</td>
+ <td class="right" rowspan="3" style="vertical-align: middle">
+ <input type="submit" name="submitbtn" value="Envoyer" />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">
Mot de passe :
</td>
<td>
<input type="password" name="password" size="10" maxlength="256" />
<a href="recovery">Perdu ?</a>
</td>
- <td class="right" rowspan="2" style="vertical-align: middle">
- <input type="submit" name="submitbtn" value="Envoyer" />
- </td>
</tr>
<tr>
<td {popup caption='Connexion permanente' width='300' text='Décoche cette case pour que le site oublie ce navigateur.<br />
</table>
</form>
<br />
-{if $smarty.request.response}<!-- failed login code -->
-{include core=triggers.tpl text="Erreur d'identification. Essaie à nouveau !" type="errors"}
-{/if}
<!-- Set up the form with the challenge value and an empty reply value -->
<form action="{$smarty.server.REQUEST_URI}" method="post" id="loginsub">