Subversion Repositories eFlore/Archives.herbiers

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 jp_milcent 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2005 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
8
// | This file is part of Herbier.                                                                        |
9
// |                                                                                                      |
10
// | Foobar is free software; you can redistribute it and/or modify                                       |
11
// | it under the terms of the GNU General Public License as published by                                 |
12
// | the Free Software Foundation; either version 2 of the License, or                                    |
13
// | (at your option) any later version.                                                                  |
14
// |                                                                                                      |
15
// | Foobar is distributed in the hope that it will be useful,                                            |
16
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
17
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                        |
18
// | GNU General Public License for more details.                                                         |
19
// |                                                                                                      |
20
// | You should have received a copy of the GNU General Public License                                    |
21
// | along with Foobar; if not, write to the Free Software                                                |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
23
// +------------------------------------------------------------------------------------------------------+
24
// CVS : $Id: hb_utilisateur.class.php,v 1.1 2005-11-23 10:32:32 jp_milcent Exp $
25
/**
26
* Classe H_Utilisateur
27
*
28
* Classe permettant de récupérer les données concernant un utilisateur des Herbiers.
29
*
30
*@package Herbier
31
*@subpackage Classes
32
//Auteur original :
33
*@author        Jean-Pascal MILCENT <jpm@clapas.org>
34
//Autres auteurs :
35
*@author        Aucun
36
*@copyright     Tela-Botanica 2000-2005
37
*@version       $Revision: 1.1 $ $Date: 2005-11-23 10:32:32 $
38
// +------------------------------------------------------------------------------------------------------+
39
*/
40
 
41
// +------------------------------------------------------------------------------------------------------+
42
// |                                            ENTETE du PROGRAMME                                       |
43
// +------------------------------------------------------------------------------------------------------+
44
 
45
// +------------------------------------------------------------------------------------------------------+
46
// |                                            CORPS du PROGRAMME                                        |
47
// +------------------------------------------------------------------------------------------------------+
48
/**
49
* Classe H_Utilisateur()
50
*
51
* Contient des requêtes sur la table servant d'annuaire.
52
*
53
* @package herbiers
54
*/
55
class H_Utilisateur {
56
    /** @var integer identifiant de la personne actuellement connectée à l'administration des Herbiers.*/
57
    var $id;
58
    /** @var object un objet directement sortie de la base de données via PearD Bcontenant toutes les information sur l'utilisateur.*/
59
    var $info;
60
    /** @var bool contient TRUE si la personne à le droit d'accès sinon FALSE.*/
61
    var $droit_bool;
62
    /** @var bool contient TRUE si la personne est administratrice sinon FALSE.*/
63
    var $admin_bool;
64
    /** @var bool contient TRUE si la personne est coordinatrice sinon FALSE.*/
65
    var $coord_bool;
66
    /** @var bool contient TRUE si la personne est rédacteur sinon FALSE.*/
67
    var $redac_bool;
68
    /** @var array contient un tableau d'objet organisation appartenant à l'utilisateur.*/
69
    var $organisation_liste;
70
 
71
    /**
72
    * Constructeur de H_Utilisateur
73
    *
74
    * @return void
75
    * @access public
76
    */
77
    function H_Utilisateur($id_utilisateur)
78
    {
79
        $this->id = $id_utilisateur;
80
        $this->info = $this->renseignement($this->id);
81
        $this->droit_bool = $this->avoirDroit();
82
        $this->admin_bool = $this->etreAdministrateur();
83
        $this->coord_bool = $this->etreCoordinateur();
84
        $this->redac_bool = $this->etreRedacteur();
85
    }
86
    /** Méthode getId() - Retourne l'identifiant d'un utilisateur.
87
    *
88
    * @return integer l'identifiant d'un utilisateur.
89
    * @access public
90
    */
91
    function getId()
92
    {
93
        return $this->id;
94
    }
95
    /** Méthode setId() - Remplace l'identifiant de l'utilisateur.
96
    *
97
    * @param integer l'identifiant de l'utilisateur.
98
    * @return void.
99
    * @access public
100
    */
101
    function setId($id)
102
    {
103
        $this->id = $id;
104
    }
105
    /** Méthode getInfo() - Retourne les info sur un utilisateur.
106
    *
107
    * @return object les infos provenant de la table annuaire.
108
    * @access public
109
    */
110
    function getInfo()
111
    {
112
        return $this->info;
113
    }
114
    /** Méthode getDroit() - Retourne la valeur de l'attribut droit_bool
115
    *
116
    * @return bool vrai si la personne à le droit sinon faux.
117
    * @access public
118
    */
119
    function getDroit()
120
    {
121
        return $this->droit_bool;
122
    }
123
    /** Méthode getAdminBool() - Retourne la valeur de l'attribut admin_bool
124
    *
125
    * @return bool vrai si la personne est administrateur sinon faux.
126
    * @access public
127
    */
128
    function getAdminBool()
129
    {
130
        return $this->admin_bool;
131
    }
132
    /** Méthode getCoordBool() - Retourne la valeur de l'attribut coord_bool
133
    *
134
    * @return bool vrai si la personne est coordinatrice sinon faux.
135
    * @access public
136
    */
137
    function getCoordBool()
138
    {
139
        return $this->coord_bool;
140
    }
141
    /** Méthode getRedacBool() - Retourne la valeur de l'attribut redac_bool
142
    *
143
    * @return bool vrai si la personne est rédacteur sinon faux.
144
    * @access public
145
    */
146
    function getRedacBool()
147
    {
148
        return $this->redac_bool;
149
    }
150
    /** Méthode getOrganisationListe() - Retourne le tableau des organisation de l'utilisateur.
151
    *
152
    * @return array le tableau des organisation de l'utilisateur.
153
    * @access public
154
    */
155
    function getOrganisationListe()
156
    {
157
        if (is_array($this->organisation_liste)) {
158
            return $this->organisation_liste;
159
        } else {
160
            return array();
161
        }
162
    }
163
 
164
    /** Méthode renseignement() - Renvoie un objet de type H_Utilisateur
165
    *
166
    * Renvoie un objet de type H_Administrateur dont l'identificateur est spécifié en paramètre.
167
    * L'objet correspond à un administrateur décrit dans la table servant d'annuaire.
168
    *
169
    * @param  integer l'identifiant de la table servant d'annuaire.
170
    * @return object un objet de la classe H_Utilisateur
171
    * @access public
172
    */
173
    function renseignement($id_utilisateur = null)
174
    {
175
        if (is_null($id_utilisateur)) {
176
            $id_utilisateur = $this->getId();
177
        }
178
        $requete =  'SELECT * '.
179
                    'FROM '.HB_BDD_TAB_ANNUAIRE.' '.
180
                    'WHERE '.HB_BDD_TAB_ANNUAIRE_CHP_ID.' = '.$id_utilisateur;
181
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
182
        $ligne = mysql_fetch_object($resultat);
183
        return $ligne;
184
    }
185
 
186
    /** Méthode etreDansAnnuaire() - Retourne vrai si l'utilisateur est dans l'annuaire
187
    *
188
    * Renvoie vrai si la personne est présente dans l'annuaire utilisé pour les Herbiers
189
    * sinon la méthode renvoie faux.
190
    *
191
    * @param  string la valeur à rechercher dans une colonne de la table d'annuaire.
192
    * @param  string la nom de la colonne de la table d'annuaire où chercher la valeur.
193
    * @return bool vrai si la valeur est trouvée dans la colonne de la table d'annuaire sinon faux.
194
    * @access public
195
    */
196
    function etreDansAnnuaire($valeur, $champs)
197
    {
198
        $requete =  'SELECT U_ID '.
199
                    'FROM '.HB_BDD_TAB_ANNUAIRE.' '.
200
                    'WHERE '.$champs.' = "'.$valeur.'"';
201
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
202
        if (mysql_num_rows($resultat) != 0) {
203
            return TRUE;
204
        } else {
205
            return FALSE;
206
        }
207
    }
208
 
209
    /** Méthode avoirDroit() - Retourne un booléen en fonction des droits de la personne
210
    *
211
    * Renvoie vrai si la personne à le droit de se connecter à l'administration des Herbiers
212
    * sinon la méthode renvoie faux.
213
    *
214
    * @param  integer l'identifiant de la personne dans la table servant d'annuaire.
215
    * @return bool vrai si la personne à le droit sinon faux.
216
    * @access public
217
    */
218
    function avoirDroit($id_utilisateur = null)
219
    {
220
        if (is_null($id_utilisateur)) {
221
            $id_utilisateur = $this->getId();
222
        }
223
        $requete =  'SELECT EDP_ID_DROIT '.
224
                    'FROM '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '.
225
                    'WHERE EDP_ID_UTILISATEUR = '.$id_utilisateur.' '.
226
                    'AND EDP_ID_PROJET = 1';
227
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
228
        if (mysql_num_rows($resultat) != 0) {
229
            return TRUE;
230
        } else {
231
            return FALSE;
232
        }
233
    }
234
 
235
    /** Méthode etreAdministrateur() - Retourne vrai si l'utilisateur est administrateur
236
    *
237
    * Renvoie vrai si la personne à les droits d'administrateur des Herbiers
238
    * sinon la méthode renvoie faux.
239
    *
240
    * @param  integer l'identifiant de la personne dans la table servant d'annuaire.
241
    * @return bool vrai si la personne est administrateur sinon faux.
242
    * @access public
243
    */
244
    function etreAdministrateur($id_utilisateur = null)
245
    {
246
        if (is_null($id_utilisateur)) {
247
            $id_utilisateur = $this->getId();
248
        }
249
        $requete =  'SELECT EDP_ID_DROIT '.
250
                    'FROM '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '.
251
                    'WHERE EDP_ID_UTILISATEUR = '.$id_utilisateur.' '.
252
                    'AND EDP_ID_PROJET = 1 '.
253
                    'AND EDP_ID_DROIT = 1';
254
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
255
        if (mysql_num_rows($resultat) != 0) {
256
            return TRUE;
257
        } else {
258
            return FALSE;
259
        }
260
    }
261
 
262
    /** Méthode etreCoordinateur() - Retourne vrai si l'utilisateur est coordinateur
263
    *
264
    * Renvoie vrai si la personne à les droits de coordinateur des Herbiers
265
    * sinon la méthode renvoie faux.
266
    *
267
    * @param  integer l'identifiant de la personne dans la table servant d'annuaire.
268
    * @return bool vrai si la personne est coordinateur sinon faux.
269
    * @access public
270
    */
271
    function etreCoordinateur($id_utilisateur = null)
272
    {
273
        if (is_null($id_utilisateur)) {
274
            $id_utilisateur = $this->getId();
275
        }
276
        $requete =  'SELECT EDP_ID_DROIT '.
277
                    'FROM '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '.
278
                    'WHERE EDP_ID_UTILISATEUR = '.$id_utilisateur.' '.
279
                    'AND EDP_ID_PROJET = 1 '.
280
                    'AND EDP_ID_DROIT = 2';
281
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
282
        if (mysql_num_rows($resultat) != 0) {
283
            return TRUE;
284
        } else {
285
            return FALSE;
286
        }
287
    }
288
 
289
    /** Méthode etreRedacteur() - Retourne vrai si l'utilisateur est rédacteur.
290
    *
291
    * Renvoie vrai si la personne à les droits de rédacteur des Herbiers
292
    * sinon la méthode renvoie faux.
293
    *
294
    * @param  integer l'identifiant de la personne dans la table servant d'annuaire.
295
    * @return bool vrai si la personne est rédacteur sinon faux.
296
    * @access public
297
    */
298
    function etreRedacteur($id_utilisateur = null)
299
    {
300
        if (is_null($id_utilisateur)) {
301
            $id_utilisateur = $this->getId();
302
        }
303
        $requete =  'SELECT EDP_ID_DROIT '.
304
                    'FROM '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '.
305
                    'WHERE EDP_ID_UTILISATEUR = '.$id_utilisateur.' '.
306
                    'AND EDP_ID_PROJET = 1 '.
307
                    'AND EDP_ID_DROIT = 3';
308
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
309
        if (mysql_num_rows($resultat) != 0) {
310
            return TRUE;
311
        } else {
312
            return FALSE;
313
        }
314
    }
315
    /** Méthode donnerTableauUtilisateurs() - Retourne le tableau des utilisateurs avec droit.
316
    *
317
    * Renvoie un tableau contenant les id de chaque utilisateur de l'administration des Herbiers.
318
    *
319
    * @return array le tableau contenant les id de chaque utilisateur.
320
    * @access public
321
    */
322
    function donnerTableauUtilisateurs()
323
    {
324
        $tab_utilisateurs = array();
325
        $requete =  'SELECT U_ID '.
326
                    'FROM '.HB_BDD_NOM_ANNUAIRE.'.annuaire_tela, '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '.
327
                    'WHERE U_ID = EDP_ID_UTILISATEUR';
328
        $resultat = mysql_query($requete) or die (BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
329
        while ($ligne = mysql_fetch_assoc($resultat)) {
330
            array_push($tab_utilisateurs, $ligne['U_ID']);
331
        }
332
        return $tab_utilisateurs;
333
    }
334
 
335
    /**
336
    *  Méthode recupererOrganisationListe() - Remplir le tableau des organisations de l'utilisateur.
337
    *
338
    *  Initialise l'attribut organisation_utilisateur.
339
    *
340
    * @param H_Utilisateur l'objet représentant l'utilisateur actuel des Herbiers.
341
    * @return bool retourne TRUE si la talbeau a été rempli, FALSE si il est vide.
342
    * @access public
343
    */
344
    function recupererOrganisationListe(&$un_utilisateur)
345
    {
346
        $requete =  'SELECT HERBIERS_ORGANISATION.ID_ORG, HERBIERS_ORGANISATION.INSTITUTION_NAME, HERBIERS_ORGANISATION.TOWN '.
347
                    'FROM HERBIERS_ORGANISATION ';
348
        if (!$un_utilisateur->getAdminBool()) {
349
            $requete .= ', HERBIERS_ADMINISTRER '.
350
                        'WHERE HERBIERS_ADMINISTRER.HA_ID_ANNUAIRE = '.$un_utilisateur->getId().' '.
351
                        'AND HERBIERS_ADMINISTRER.HA_ID_ORG = HERBIERS_ORGANISATION.ID_ORG ';
352
        }
353
        $requete .= 'ORDER BY HERBIERS_ORGANISATION.TOWN';
354
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
355
        if (mysql_num_rows($resultat) == 0) {
356
            return FALSE;
357
        } else {
358
            $this->organisation_liste = array();
359
            while ($ligne = mysql_fetch_object($resultat)) {
360
                array_push($this->organisation_liste, $ligne);
361
            }
362
            return TRUE;
363
        }
364
    }
365
 
366
    /**
367
    *  Méthode insererOrganisationListe() - Attribuer à un utilisateur une organisation.
368
    *
369
    * Permet d'insérer dans la base de données une ligne faisant correspondre une organisation à
370
    * un utilisateur.
371
    *
372
    * @param H_organisation l'objet représentant l'organisation de l'utilisateur.
373
    * return void
374
    * @access public
375
    */
376
    function insererOrganisationListe(&$une_organisation)
377
    {
378
        $requete =  'INSERT INTO HERBIERS_ADMINISTRER '.
379
                    'SET HA_ID_ANNUAIRE = '.$this->getId().', '.
380
                    'HA_ID_ORG = '.$une_organisation->getId();
381
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
382
    }
383
}
384
 
385
 
386
// +------------------------------------------------------------------------------------------------------+
387
// |                                            PIED du PROGRAMME                                         |
388
// +------------------------------------------------------------------------------------------------------+
389
 
390
 
391
/* +--Fin du code ----------------------------------------------------------------------------------------+
392
*
393
* $Log: not supported by cvs2svn $
394
* Revision 1.1  2005/04/06 13:29:17  jpm
395
* Ajout et modifications des objets représentant la base de données Herbier.
396
*
397
* Revision 1.1  2005/03/08 14:13:21  jpm
398
* Ajout des classes d'accès à la base de données.
399
*
400
*
401
* +-- Fin du code ----------------------------------------------------------------------------------------+
402
*/
403
?>