Subversion Repositories Applications.framework

Rev

Rev 120 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 120 Rev 128
Line 1... Line 1...
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Modèle d'accès à la base de données des administrateurs
4
 * Modèle d'accès à la base de données des administrateurs
5
 * de papyrus
5
 * de papyrus
-
 
6
 *
-
 
7
 * PHP Version 5
-
 
8
 *
-
 
9
 * @package   Framework
-
 
10
 * @category  Class
-
 
11
 * @author	aurelien <aurelien@tela-botanica.org>
-
 
12
 * @copyright 2009 Tela-Botanica
-
 
13
 * @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
-
 
14
 * @license   http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
-
 
15
 * @version   SVN: $$Id: ListeAdmin.php 128 2009-09-02 12:20:55Z aurelien $$
-
 
16
 * @link	  /doc/framework/
-
 
17
 *
6
 */
18
 */
7
class listeAdmin extends Modele {
19
class listeAdmin extends Modele {
Line 8... Line 20...
8
 
20
 
Line 71... Line 83...
71
							'FROM gen_annuaire '.
83
							'FROM gen_annuaire '.
72
							"WHERE ga_mail = '{$this->proteger($mail)}'".
84
							"WHERE ga_mail = '{$this->proteger($mail)}'".
73
							"	AND ga_id_administrateur != $id ";
85
							"	AND ga_id_administrateur != $id ";
74
		if ($res_nb = $this->requete($query_verif_mail)) {
86
		if ($res_nb = $this->requete($query_verif_mail)) {
75
			$ligne = $res_nb->fetch();
87
			$ligne = $res_nb->fetch();
76
			$nb_admin = $ligne['nb_admin'] ;
88
			$nb_admin = $ligne['nb_admin'];
77
		} else {
89
		} else {
78
			$res['bdd'] = 'Erreur dans la base de données' ;
90
			$res['bdd'] = 'Erreur dans la base de données';
79
			return $res;
91
			return $res;
80
		}
92
		}
Line 81... Line 93...
81
 
93
 
82
		if($nb_admin != 0) {
94
		if($nb_admin != 0) {
83
			$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ;
95
			$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur';
Line 84... Line 96...
84
		}
96
		}
85
 
97
 
Line 86... Line 98...
86
		$query = 'UPDATE gen_annuaire SET ga_ce_i18n='.$this->proteger($lang).', ga_nom='.$this->proteger($nom).',ga_prenom='.
98
		$query = 'UPDATE gen_annuaire SET ga_ce_i18n='.$this->proteger($lang).', ga_nom='.$this->proteger($nom).',ga_prenom='.
87
		$this->proteger($prenom).',ga_mail='.$this->proteger($mail) ;
99
		$this->proteger($prenom).',ga_mail='.$this->proteger($mail);
88
 
100
 
89
		// si on a entré quelque chose dans les deux champs de mot de passe
101
		// si on a entré quelque chose dans les deux champs de mot de passe
90
		if($pass != '' || $pass_conf != '') {
102
		if($pass != '' || $pass_conf != '') {
91
			// on vérifie si les deux concordent
103
			// on vérifie si les deux concordent
92
			if($pass == $pass_conf) {
104
			if($pass == $pass_conf) {
93
				// si oui, on les modifie
105
				// si oui, on les modifie
94
				$query .= ',ga_mot_de_passe='.$this->proteger(md5($pass)) ;
106
				$query .= ',ga_mot_de_passe='.$this->proteger(md5($pass));
95
			} else {
107
			} else {
96
				// si non, on notifiera l'utilisateur
108
				// si non, on notifiera l'utilisateur
Line 97... Line 109...
97
				$res['pass'] = 'mot de passe invalide' ;
109
				$res['pass'] = 'mot de passe invalide';
Line 98... Line 110...
98
			}
110
			}
99
		}
111
		}
100
 
112
 
Line 101... Line 113...
101
		$query .= ' WHERE ga_id_administrateur='.$id ;
113
		$query .= ' WHERE ga_id_administrateur='.$id;
Line 102... Line 114...
102
 
114
 
103
		if(count($res) != 0) {
115
		if(count($res) != 0) {
104
			return $res ;
116
			return $res;
Line 105... Line 117...
105
		}
117
		}
106
 
118
 
Line 118... Line 130...
118
	 * @param  int   l'identifiant de l'administrateur
130
	 * @param  int   l'identifiant de l'administrateur
119
	 * @return array	un tableau contenant les erreurs s'il y en a, vide sinon
131
	 * @return array	un tableau contenant les erreurs s'il y en a, vide sinon
120
	 */
132
	 */
121
	function suppAdmin($id) {
133
	function suppAdmin($id) {
Line 122... Line 134...
122
 
134
 
123
		$nb_admin = 0 ;
135
		$nb_admin = 0;
Line 124... Line 136...
124
		$res = '' ;
136
		$res = '';
125
 
137
 
126
		$query_verif = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire' ;
138
		$query_verif = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire';
127
		if($res_nb = $this->requete($query_verif)) {
139
		if($res_nb = $this->requete($query_verif)) {
128
			$ligne = $res_nb->fetch();
140
			$ligne = $res_nb->fetch();
129
			$nb_admin = $ligne['nb_admin'] ;
141
			$nb_admin = $ligne['nb_admin'];
130
		} else {
142
		} else {
131
			$res = 'Erreur dans la base de donn�es' ;
143
			$res = 'Erreur dans la base de donn�es';
Line 132... Line 144...
132
			return $res ;
144
			return $res ;
133
		}
145
		}
134
 
146
 
135
		if($nb_admin == 2) {
147
		if($nb_admin == 2) {
Line 136... Line 148...
136
			$res = 'Impossible de supprimer le dernier administrateur' ;
148
			$res = 'Impossible de supprimer le dernier administrateur';
Line 137... Line 149...
137
			return $res ;
149
			return $res ;
138
		}
150
		}
139
 
151
 
140
		$query = 'DELETE FROM gen_annuaire WHERE ga_id_administrateur='.$id ;
152
		$query = 'DELETE FROM gen_annuaire WHERE ga_id_administrateur='.$id;
Line 157... Line 169...
157
	 * @param  string   la confirmation du mot de passe
169
	 * @param  string   la confirmation du mot de passe
158
	 * @return array	un tableau contenant les erreurs s'il y en a, vide sinon
170
	 * @return array	un tableau contenant les erreurs s'il y en a, vide sinon
159
	 */
171
	 */
160
	function ajoutAdmin($nom,$prenom,$mail,$lang,$pass,$pass_conf) {
172
	function ajoutAdmin($nom,$prenom,$mail,$lang,$pass,$pass_conf) {
Line 161... Line 173...
161
 
173
 
162
		$nouvel_id = 0 ;
174
		$nouvel_id = 0;
163
		$nb_admin = 0 ;
175
		$nb_admin = 0;
Line 164... Line 176...
164
		$res = array() ;
176
		$res = array();
165
 
177
 
166
		if(!$this->validerMail($mail)) {
178
		if(!$this->validerMail($mail)) {
Line 167... Line 179...
167
			$res['mail'] = 'adresse mail invalide' ;
179
			$res['mail'] = 'adresse mail invalide';
168
		}
180
		}
169
 
181
 
170
		$query_verif_mail = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire WHERE ga_mail = '.$this->proteger($mail) ;
182
		$query_verif_mail = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire WHERE ga_mail = '.$this->proteger($mail);
171
		if($res_nb = $this->requete($query_verif_mail)) {
183
		if($res_nb = $this->requete($query_verif_mail)) {
172
			$ligne = $res_nb->fetch() ;
184
			$ligne = $res_nb->fetch();
173
			$nb_admin = $ligne['nb_admin'] ;
185
			$nb_admin = $ligne['nb_admin'];
174
		} else {
186
		} else {
Line 175... Line 187...
175
			$res['bdd'] = 'Erreur dans la base de données' ;
187
			$res['bdd'] = 'Erreur dans la base de données';
176
			return $res ;
188
			return $res;
177
		}
189
		}
Line 178... Line 190...
178
 
190
 
179
		if($nb_admin != 0) {
191
		if($nb_admin != 0) {
180
			$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ;
192
			$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur';
Line 181... Line 193...
181
		}
193
		}
182
 
194
 
183
		if($pass != '' || $pass_conf != '') {
195
		if($pass != '' || $pass_conf != '') {
184
			// on vérifie si les deux concordent
196
			// on vérifie si les deux concordent
185
			if($pass == $pass_conf) {
197
			if($pass == $pass_conf) {
Line 186... Line 198...
186
 
198
 
Line 187... Line 199...
187
			} else {
199
			} else {
Line 188... Line 200...
188
				// si non, on notifiera l'utilisateur
200
				// si non, on notifiera l'utilisateur
189
				$res['pass'] = 'mot de passe invalide' ;
201
				$res['pass'] = 'mot de passe invalide';
190
			}
202
			}
191
		}
203
		}
192
 
204
 
Line 193... Line 205...
193
		$query = 'SELECT MAX(ga_id_administrateur) as nouvel_id FROM gen_annuaire' ;
205
		$query = 'SELECT MAX(ga_id_administrateur) as nouvel_id FROM gen_annuaire';
194
 
206
 
195
		if($res_requete_id = $this->requete($query)) {
207
		if($res_requete_id = $this->requete($query)) {
Line 196... Line 208...
196
 
208
 
197
			$ligne = $res_requete_id->fetch() ;
209
			$ligne = $res_requete_id->fetch() ;
198
			$nouvel_id = $ligne['nouvel_id'] + 1 ;
210
			$nouvel_id = $ligne['nouvel_id'] + 1;
Line 199... Line 211...
199
		} else {
211
		} else {
Line 200... Line 212...
200
			return $res ;
212
			return $res ;
201
		}
213
		}
202
 
214
 
Line 203... Line 215...
203
		$query = 'INSERT INTO gen_annuaire VALUES ('.$nouvel_id.','.$this->proteger($lang).','.
215
		$query = 'INSERT INTO gen_annuaire VALUES ('.$nouvel_id.','.$this->proteger($lang).','.
204
		$this->proteger($nom).','.$this->proteger($prenom).','.$this->proteger(md5($pass)).','.
216
		$this->proteger($nom).','.$this->proteger($prenom).','.$this->proteger(md5($pass)).','.
Line 205... Line 217...
205
		$this->proteger($mail).')' ;
217
		$this->proteger($mail).')';
206
 
218
 
207
		if(count($res) != 0) {
219
		if(count($res) != 0) {