Subversion Repositories eFlore/Archives.herbiers

Compare Revisions

Ignore whitespace Rev 1 → Rev 2

/trunk/bibliotheque/hb_utilisateur.class.php
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 ----------------------------------------------------------------------------------------+
*/
?>