Subversion Repositories Sites.tela-botanica.org

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 david 1
<?php
2
 
3
/***************************************************************************\
4
 *  SPIP, Systeme de publication pour l'internet                           *
5
 *                                                                         *
6
 *  Copyright (c) 2001-2005                                                *
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
 
14
//
15
// Ce fichier ne sera execute qu'une fois
16
if (defined("_ECRIRE_INC_AUTH_SPIP")) return;
17
define("_ECRIRE_INC_AUTH_SPIP", "1");
18
 
19
class Auth_spip {
20
	var $nom, $login, $email, $md5pass, $md5next, $alea_futur, $statut;
21
 
22
	function init() {
23
		return true;
24
	}
25
 
26
	// Verification du mot passe crypte (javascript)
27
	function verifier_challenge_md5($login, $mdpass_actuel, $mdpass_futur) {
28
		// Interdire mot de passe vide
29
		if ($mdpass_actuel == '') return false;
30
 
31
		$query = "SELECT * FROM spip_auteurs WHERE login='".addslashes($login)."' AND pass='".addslashes($mdpass_actuel)."' AND statut<>'5poubelle'";
32
		$result = spip_query($query);
33
 
34
		if ($row = spip_fetch_array($result)) {
35
			$this->nom = $row['nom'];
36
			$this->login = $row['login'];
37
			$this->email = $row['email'];
38
			$this->statut = $row['statut'];
39
			$this->md5pass = $mdpass_actuel;
40
			$this->md5next = $mdpass_futur;
41
			return true;
42
		}
43
		return false;
44
	}
45
 
46
	// Verification du mot passe en clair (sans javascript)
47
	function verifier($login, $pass) {
48
		// Interdire mot de passe vide
49
		if ($pass == '') return false;
50
 
51
		$query = "SELECT alea_actuel, alea_futur FROM spip_auteurs WHERE login='".addslashes($login)."'";
52
		$result = spip_query($query);
53
		if ($row = spip_fetch_array($result)) {
54
			$md5pass = md5($row['alea_actuel'] . $pass);
55
			$md5next = md5($row['alea_futur'] . $pass);
56
			return $this->verifier_challenge_md5($login, $md5pass, $md5next);
57
		}
58
		return false;
59
	}
60
 
61
	function lire() {
62
		return true;
63
	}
64
 
65
	function activer() {
66
		if ($this->statut == 'nouveau') { // nouvel inscrit
67
			$connect_statut =
68
			(lire_meta('accepter_inscriptions') == 'oui') ?
69
				'1comite' : '6forum';
70
			spip_query("UPDATE spip_auteurs SET statut='$connect_statut'
71
				WHERE login='".addslashes($this->login)."'");
72
		}
73
		if ($this->md5next) {
74
			include_ecrire("inc_session.php3");
75
			// fait tourner le codage du pass dans la base
76
			$nouvel_alea_futur = creer_uniqid();
77
			$query = "UPDATE spip_auteurs SET alea_actuel = alea_futur, ".
78
				"pass = '".addslashes($this->md5next)."', alea_futur = '$nouvel_alea_futur' ".
79
				"WHERE login='".$this->login."'";
80
			@spip_query($query);
81
		}
82
	}
83
}
84
 
85
 
86
?>