Mise en route du suivi.
[aidenligne_francais_universite.git] / ecrire / inc / auth_spip.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2007 *
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
13 if (!defined("_ECRIRE_INC_VERSION")) return;
14
15 // Authentifie et retourne la ligne SQL decrivant l'utilisateur si ok
16
17 // http://doc.spip.org/@inc_auth_spip_dist
18 function inc_auth_spip_dist ($login, $pass) {
19
20 // recuperer le cryptage par JavaScript
21 $md5pass = $_POST['session_password_md5'];
22 $md5next = $_POST['next_session_password_md5'];
23
24 // si envoi non crypte, crypter maintenant
25 if (!$md5pass AND $pass) {
26 $result = spip_query("SELECT alea_actuel, alea_futur FROM spip_auteurs WHERE login=" . _q($login));
27
28 if ($row = spip_fetch_array($result)) {
29 $md5pass = md5($row['alea_actuel'] . $pass);
30 $md5next = md5($row['alea_futur'] . $pass);
31 }
32 }
33 // login inexistant ou mot de passe vide
34 if (!$md5pass) return array();
35
36 $result = spip_query("SELECT * FROM spip_auteurs WHERE login=" . _q($login) . " AND pass=" . _q($md5pass) . " AND statut<>'5poubelle'");
37 $row = spip_fetch_array($result);
38
39 // login/mot de passe incorrect
40 if (!$row) return array();
41
42 if ($row['statut'] == 'nouveau') {
43 include_spip('inc/auth');
44 $row['statut'] = acces_statut($row['id_auteur'], $row['statut'], $row['bio']);
45 }
46
47 // fait tourner le codage du pass dans la base
48 if ($md5next) {
49 include_spip('inc/acces'); // pour creer_uniqid
50 @spip_query("UPDATE spip_auteurs SET alea_actuel = alea_futur, pass = " . _q($md5next) . ", alea_futur = '" . creer_uniqid() ."' WHERE id_auteur=" . $row['id_auteur']);
51 // En profiter pour verifier la securite de ecrire/data/
52 verifier_htaccess(_DIR_TMP);
53 }
54 return $row;
55 }
56
57 ?>