New file |
0,0 → 1,403 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 4.1 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2005 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This file is part of Herbier. | |
// | | |
// | Foobar is free software; you can redistribute it and/or modify | |
// | it under the terms of the GNU General Public License as published by | |
// | the Free Software Foundation; either version 2 of the License, or | |
// | (at your option) any later version. | |
// | | |
// | Foobar is distributed in the hope that it will be useful, | |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
// | GNU General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU General Public License | |
// | along with Foobar; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: hb_utilisateur.class.php,v 1.1 2005-11-23 10:32:32 jp_milcent Exp $ |
/** |
* Classe H_Utilisateur |
* |
* Classe permettant de récupérer les données concernant un utilisateur des Herbiers. |
* |
*@package Herbier |
*@subpackage Classes |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@clapas.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2005 |
*@version $Revision: 1.1 $ $Date: 2005-11-23 10:32:32 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
|
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
/** |
* Classe H_Utilisateur() |
* |
* Contient des requêtes sur la table servant d'annuaire. |
* |
* @package herbiers |
*/ |
class H_Utilisateur { |
/** @var integer identifiant de la personne actuellement connectée à l'administration des Herbiers.*/ |
var $id; |
/** @var object un objet directement sortie de la base de données via PearD Bcontenant toutes les information sur l'utilisateur.*/ |
var $info; |
/** @var bool contient TRUE si la personne à le droit d'accès sinon FALSE.*/ |
var $droit_bool; |
/** @var bool contient TRUE si la personne est administratrice sinon FALSE.*/ |
var $admin_bool; |
/** @var bool contient TRUE si la personne est coordinatrice sinon FALSE.*/ |
var $coord_bool; |
/** @var bool contient TRUE si la personne est rédacteur sinon FALSE.*/ |
var $redac_bool; |
/** @var array contient un tableau d'objet organisation appartenant à l'utilisateur.*/ |
var $organisation_liste; |
|
/** |
* Constructeur de H_Utilisateur |
* |
* @return void |
* @access public |
*/ |
function H_Utilisateur($id_utilisateur) |
{ |
$this->id = $id_utilisateur; |
$this->info = $this->renseignement($this->id); |
$this->droit_bool = $this->avoirDroit(); |
$this->admin_bool = $this->etreAdministrateur(); |
$this->coord_bool = $this->etreCoordinateur(); |
$this->redac_bool = $this->etreRedacteur(); |
} |
/** Méthode getId() - Retourne l'identifiant d'un utilisateur. |
* |
* @return integer l'identifiant d'un utilisateur. |
* @access public |
*/ |
function getId() |
{ |
return $this->id; |
} |
/** Méthode setId() - Remplace l'identifiant de l'utilisateur. |
* |
* @param integer l'identifiant de l'utilisateur. |
* @return void. |
* @access public |
*/ |
function setId($id) |
{ |
$this->id = $id; |
} |
/** Méthode getInfo() - Retourne les info sur un utilisateur. |
* |
* @return object les infos provenant de la table annuaire. |
* @access public |
*/ |
function getInfo() |
{ |
return $this->info; |
} |
/** Méthode getDroit() - Retourne la valeur de l'attribut droit_bool |
* |
* @return bool vrai si la personne à le droit sinon faux. |
* @access public |
*/ |
function getDroit() |
{ |
return $this->droit_bool; |
} |
/** Méthode getAdminBool() - Retourne la valeur de l'attribut admin_bool |
* |
* @return bool vrai si la personne est administrateur sinon faux. |
* @access public |
*/ |
function getAdminBool() |
{ |
return $this->admin_bool; |
} |
/** Méthode getCoordBool() - Retourne la valeur de l'attribut coord_bool |
* |
* @return bool vrai si la personne est coordinatrice sinon faux. |
* @access public |
*/ |
function getCoordBool() |
{ |
return $this->coord_bool; |
} |
/** Méthode getRedacBool() - Retourne la valeur de l'attribut redac_bool |
* |
* @return bool vrai si la personne est rédacteur sinon faux. |
* @access public |
*/ |
function getRedacBool() |
{ |
return $this->redac_bool; |
} |
/** Méthode getOrganisationListe() - Retourne le tableau des organisation de l'utilisateur. |
* |
* @return array le tableau des organisation de l'utilisateur. |
* @access public |
*/ |
function getOrganisationListe() |
{ |
if (is_array($this->organisation_liste)) { |
return $this->organisation_liste; |
} else { |
return array(); |
} |
} |
|
/** Méthode renseignement() - Renvoie un objet de type H_Utilisateur |
* |
* Renvoie un objet de type H_Administrateur dont l'identificateur est spécifié en paramètre. |
* L'objet correspond à un administrateur décrit dans la table servant d'annuaire. |
* |
* @param integer l'identifiant de la table servant d'annuaire. |
* @return object un objet de la classe H_Utilisateur |
* @access public |
*/ |
function renseignement($id_utilisateur = null) |
{ |
if (is_null($id_utilisateur)) { |
$id_utilisateur = $this->getId(); |
} |
$requete = 'SELECT * '. |
'FROM '.HB_BDD_TAB_ANNUAIRE.' '. |
'WHERE '.HB_BDD_TAB_ANNUAIRE_CHP_ID.' = '.$id_utilisateur; |
$resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete)); |
$ligne = mysql_fetch_object($resultat); |
return $ligne; |
} |
|
/** Méthode etreDansAnnuaire() - Retourne vrai si l'utilisateur est dans l'annuaire |
* |
* Renvoie vrai si la personne est présente dans l'annuaire utilisé pour les Herbiers |
* sinon la méthode renvoie faux. |
* |
* @param string la valeur à rechercher dans une colonne de la table d'annuaire. |
* @param string la nom de la colonne de la table d'annuaire où chercher la valeur. |
* @return bool vrai si la valeur est trouvée dans la colonne de la table d'annuaire sinon faux. |
* @access public |
*/ |
function etreDansAnnuaire($valeur, $champs) |
{ |
$requete = 'SELECT U_ID '. |
'FROM '.HB_BDD_TAB_ANNUAIRE.' '. |
'WHERE '.$champs.' = "'.$valeur.'"'; |
$resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete)); |
if (mysql_num_rows($resultat) != 0) { |
return TRUE; |
} else { |
return FALSE; |
} |
} |
|
/** Méthode avoirDroit() - Retourne un booléen en fonction des droits de la personne |
* |
* Renvoie vrai si la personne à le droit de se connecter à l'administration des Herbiers |
* sinon la méthode renvoie faux. |
* |
* @param integer l'identifiant de la personne dans la table servant d'annuaire. |
* @return bool vrai si la personne à le droit sinon faux. |
* @access public |
*/ |
function avoirDroit($id_utilisateur = null) |
{ |
if (is_null($id_utilisateur)) { |
$id_utilisateur = $this->getId(); |
} |
$requete = 'SELECT EDP_ID_DROIT '. |
'FROM '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '. |
'WHERE EDP_ID_UTILISATEUR = '.$id_utilisateur.' '. |
'AND EDP_ID_PROJET = 1'; |
$resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete)); |
if (mysql_num_rows($resultat) != 0) { |
return TRUE; |
} else { |
return FALSE; |
} |
} |
|
/** Méthode etreAdministrateur() - Retourne vrai si l'utilisateur est administrateur |
* |
* Renvoie vrai si la personne à les droits d'administrateur des Herbiers |
* sinon la méthode renvoie faux. |
* |
* @param integer l'identifiant de la personne dans la table servant d'annuaire. |
* @return bool vrai si la personne est administrateur sinon faux. |
* @access public |
*/ |
function etreAdministrateur($id_utilisateur = null) |
{ |
if (is_null($id_utilisateur)) { |
$id_utilisateur = $this->getId(); |
} |
$requete = 'SELECT EDP_ID_DROIT '. |
'FROM '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '. |
'WHERE EDP_ID_UTILISATEUR = '.$id_utilisateur.' '. |
'AND EDP_ID_PROJET = 1 '. |
'AND EDP_ID_DROIT = 1'; |
$resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete)); |
if (mysql_num_rows($resultat) != 0) { |
return TRUE; |
} else { |
return FALSE; |
} |
} |
|
/** Méthode etreCoordinateur() - Retourne vrai si l'utilisateur est coordinateur |
* |
* Renvoie vrai si la personne à les droits de coordinateur des Herbiers |
* sinon la méthode renvoie faux. |
* |
* @param integer l'identifiant de la personne dans la table servant d'annuaire. |
* @return bool vrai si la personne est coordinateur sinon faux. |
* @access public |
*/ |
function etreCoordinateur($id_utilisateur = null) |
{ |
if (is_null($id_utilisateur)) { |
$id_utilisateur = $this->getId(); |
} |
$requete = 'SELECT EDP_ID_DROIT '. |
'FROM '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '. |
'WHERE EDP_ID_UTILISATEUR = '.$id_utilisateur.' '. |
'AND EDP_ID_PROJET = 1 '. |
'AND EDP_ID_DROIT = 2'; |
$resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete)); |
if (mysql_num_rows($resultat) != 0) { |
return TRUE; |
} else { |
return FALSE; |
} |
} |
|
/** Méthode etreRedacteur() - Retourne vrai si l'utilisateur est rédacteur. |
* |
* Renvoie vrai si la personne à les droits de rédacteur des Herbiers |
* sinon la méthode renvoie faux. |
* |
* @param integer l'identifiant de la personne dans la table servant d'annuaire. |
* @return bool vrai si la personne est rédacteur sinon faux. |
* @access public |
*/ |
function etreRedacteur($id_utilisateur = null) |
{ |
if (is_null($id_utilisateur)) { |
$id_utilisateur = $this->getId(); |
} |
$requete = 'SELECT EDP_ID_DROIT '. |
'FROM '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '. |
'WHERE EDP_ID_UTILISATEUR = '.$id_utilisateur.' '. |
'AND EDP_ID_PROJET = 1 '. |
'AND EDP_ID_DROIT = 3'; |
$resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete)); |
if (mysql_num_rows($resultat) != 0) { |
return TRUE; |
} else { |
return FALSE; |
} |
} |
/** Méthode donnerTableauUtilisateurs() - Retourne le tableau des utilisateurs avec droit. |
* |
* Renvoie un tableau contenant les id de chaque utilisateur de l'administration des Herbiers. |
* |
* @return array le tableau contenant les id de chaque utilisateur. |
* @access public |
*/ |
function donnerTableauUtilisateurs() |
{ |
$tab_utilisateurs = array(); |
$requete = 'SELECT U_ID '. |
'FROM '.HB_BDD_NOM_ANNUAIRE.'.annuaire_tela, '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '. |
'WHERE U_ID = EDP_ID_UTILISATEUR'; |
$resultat = mysql_query($requete) or die (BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete)); |
while ($ligne = mysql_fetch_assoc($resultat)) { |
array_push($tab_utilisateurs, $ligne['U_ID']); |
} |
return $tab_utilisateurs; |
} |
|
/** |
* Méthode recupererOrganisationListe() - Remplir le tableau des organisations de l'utilisateur. |
* |
* Initialise l'attribut organisation_utilisateur. |
* |
* @param H_Utilisateur l'objet représentant l'utilisateur actuel des Herbiers. |
* @return bool retourne TRUE si la talbeau a été rempli, FALSE si il est vide. |
* @access public |
*/ |
function recupererOrganisationListe(&$un_utilisateur) |
{ |
$requete = 'SELECT HERBIERS_ORGANISATION.ID_ORG, HERBIERS_ORGANISATION.INSTITUTION_NAME, HERBIERS_ORGANISATION.TOWN '. |
'FROM HERBIERS_ORGANISATION '; |
if (!$un_utilisateur->getAdminBool()) { |
$requete .= ', HERBIERS_ADMINISTRER '. |
'WHERE HERBIERS_ADMINISTRER.HA_ID_ANNUAIRE = '.$un_utilisateur->getId().' '. |
'AND HERBIERS_ADMINISTRER.HA_ID_ORG = HERBIERS_ORGANISATION.ID_ORG '; |
} |
$requete .= 'ORDER BY HERBIERS_ORGANISATION.TOWN'; |
$resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete)); |
if (mysql_num_rows($resultat) == 0) { |
return FALSE; |
} else { |
$this->organisation_liste = array(); |
while ($ligne = mysql_fetch_object($resultat)) { |
array_push($this->organisation_liste, $ligne); |
} |
return TRUE; |
} |
} |
|
/** |
* Méthode insererOrganisationListe() - Attribuer à un utilisateur une organisation. |
* |
* Permet d'insérer dans la base de données une ligne faisant correspondre une organisation à |
* un utilisateur. |
* |
* @param H_organisation l'objet représentant l'organisation de l'utilisateur. |
* return void |
* @access public |
*/ |
function insererOrganisationListe(&$une_organisation) |
{ |
$requete = 'INSERT INTO HERBIERS_ADMINISTRER '. |
'SET HA_ID_ANNUAIRE = '.$this->getId().', '. |
'HA_ID_ORG = '.$une_organisation->getId(); |
mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete)); |
} |
} |
|
|
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
|
|
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.1 2005/04/06 13:29:17 jpm |
* Ajout et modifications des objets représentant la base de données Herbier. |
* |
* Revision 1.1 2005/03/08 14:13:21 jpm |
* Ajout des classes d'accès à la base de données. |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |