source: spip-zone/_plugins_/authentification/openid/spip_2_0/formulaires/login/verifier.php @ 32228

Last change on this file since 32228 was 32228, checked in by cedric@…, 11 years ago

un sous dossier pour la partie spip 2.0 du plugin, qui ne formera qu'un seul paquet multiversions

File size: 2.4 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2008                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) return;    #securite
14
15include_spip('formulaires/login');
16
17
18function formulaires_login_verifier($cible="",$login="",$prive=null){
19       
20        $session_login = _request('var_login');
21        $session_password = _request('password');
22        $session_md5pass = _request('session_password_md5');
23        $session_md5next = _request('next_session_password_md5');
24        $session_remember = _request('session_remember');
25
26        if (!$session_login) {
27                # pas de login saisi !
28                return array('message_erreur' =>
29                        _T('login_identifiant_inconnu',
30                                array('login' => htmlspecialchars($login))));
31        }
32               
33        $row = retrouver_login($session_login);
34        if ($row) 
35                $login = $row['login'];
36        else 
37                $login = $session_login;  // laisser une chance
38
39        $auteur = verifier_login($login, $session_password, $session_md5pass, $session_md5next);
40        if (!$auteur) {
41                if (strlen($session_password) OR strlen($session_md5pass))
42                        return array('password' => _T('login_erreur_pass'));
43                // sinon c'est un login en deux passe old style (ou js en panne)
44                // pas de message d'erreur
45                else return array('password' => ' ');
46        }
47        // on a ete authentifie, construire la session
48        // en gerant la duree demandee pour son cookie
49        if ($session_remember !== NULL)
50                $auteur['cookie'] = $session_remember;
51        $session = charger_fonction('session', 'inc');
52        $session($auteur);
53        $p = ($auteur['prefs']) ? unserialize($auteur['prefs']) : array();
54        $p['cnx'] = ($session_remember == 'oui') ? 'perma' : '';
55        $p = array('prefs' => serialize($p));
56        sql_updateq('spip_auteurs', $p, "id_auteur=" . $auteur['id_auteur']);
57        //  bloquer ici le visiteur qui tente d'abuser de ses droits
58        verifier_visiteur();
59        return (is_null($prive) ? is_url_prive($cible) : $prive)
60        ?  login_autoriser() : array();
61}
62
63?>
Note: See TracBrowser for help on using the repository browser.