}
}
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;
}
return $uid;
}
+ Platal::page()->trigError('Mot de passe ou nom d\'utilisateur invalide');
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();
}
}
return null;
}
- public function makePerms($perm)
+ protected function makePerms($perm, $is_admin)
{
$flags = new PlFlagSet();
if ($perm == 'disabled' || $perm == 'ext') {
$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: