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

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

Autodoc et credits sur les contributeurs principaux

File size: 1.8 KB
Line 
1<?php
2/**
3 * Plugin OpenID
4 * Licence GPL (c) 2007-2009 Edouard Lafargue, Mathieu Marcillaud, Cedric Morin, Fil
5 *
6 */
7 
8if (!defined("_ECRIRE_INC_VERSION")) return;    #securite
9
10include_spip('formulaires/login');
11
12
13function formulaires_login_verifier($cible="",$login="",$prive=null){
14       
15        $session_login = _request('var_login');
16        $session_password = _request('password');
17        $session_md5pass = _request('session_password_md5');
18        $session_md5next = _request('next_session_password_md5');
19        $session_remember = _request('session_remember');
20
21        if (!$session_login) {
22                # pas de login saisi !
23                return array('message_erreur' =>
24                        _T('login_identifiant_inconnu',
25                                array('login' => htmlspecialchars($login))));
26        }
27               
28        $row = retrouver_login($session_login);
29        if ($row) 
30                $login = $row['login'];
31        else 
32                $login = $session_login;  // laisser une chance
33
34        $auteur = verifier_login($login, $session_password, $session_md5pass, $session_md5next);
35        if (!$auteur) {
36                if (strlen($session_password) OR strlen($session_md5pass))
37                        return array('password' => _T('login_erreur_pass'));
38                // sinon c'est un login en deux passe old style (ou js en panne)
39                // pas de message d'erreur
40                else return array('password' => ' ');
41        }
42        // on a ete authentifie, construire la session
43        // en gerant la duree demandee pour son cookie
44        if ($session_remember !== NULL)
45                $auteur['cookie'] = $session_remember;
46        $session = charger_fonction('session', 'inc');
47        $session($auteur);
48        $p = ($auteur['prefs']) ? unserialize($auteur['prefs']) : array();
49        $p['cnx'] = ($session_remember == 'oui') ? 'perma' : '';
50        $p = array('prefs' => serialize($p));
51        sql_updateq('spip_auteurs', $p, "id_auteur=" . $auteur['id_auteur']);
52        //  bloquer ici le visiteur qui tente d'abuser de ses droits
53        verifier_visiteur();
54        return (is_null($prive) ? is_url_prive($cible) : $prive)
55        ?  login_autoriser() : array();
56}
57
58?>
Note: See TracBrowser for help on using the repository browser.