- LSldapObject :
[ldapsaisie.git] / trunk / includes / class / class.LSobjects.LSeegroup.php
1 <?php
2 /*******************************************************************************
3  * Copyright (C) 2007 Easter-eggs
4  * http://ldapsaisie.labs.libre-entreprise.org
5  *
6  * Author: See AUTHORS file in top-level directory.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License version 2
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20
21 ******************************************************************************/
22
23 /**
24  * Objet Ldap eegroup
25  *
26  * @author Benjamin Renard <brenard@easter-eggs.com>
27  */
28 class LSeegroup extends LSldapObject {
29
30   var $userObjectType = 'LSeepeople';
31   var $memberAttr = 'uniqueMember';
32
33   /**
34    * Constructeur
35    *
36    * Cette methode construit l'objet et définis la configuration.
37    *
38    * @author Benjamin Renard <brenard@easter-eggs.com>
39    *
40    * @param[in] $config array La configuration de l'objet
41    *
42    * @retval boolean true si l'objet a été construit, false sinon.
43    *
44    * @see LSldapObject::LSldapObject()
45    */
46   function LSeegroup ($config='auto') {
47     $this -> LSldapObject('LSeegroup',$config);
48   }
49
50   /* ========== Members ========== */
51   /**
52    * Retourne la valeur clef d'un membre
53    * 
54    * @param[in] $object Un object utilisateur
55    * 
56    * @retval Mixed La valeur clef d'un membre
57    **/
58   function getMemberKeyValue($object) {
59     return $this -> getObjectKeyValueInRelation($object,$this -> memberAttr,$this -> userObjectType);
60   }
61   
62   /**
63    * Retourne la liste des groupes pour utilisateur
64    * 
65    * Retourne un tableau de LSeegroup correspondant aux groupes
66    * auxquels appartient un utilisateur
67    * 
68    * @param[in] $userObject Un object user (type : $this -> userObjectType)
69    * 
70    * @retval Array of LSeegroup Les groupes de l'utilisateur
71    **/
72   function listUserGroups($userObject) {
73     return $this -> listObjectsInRelation($userObject,$this -> memberAttr,$this -> userObjectType);
74   }
75
76   /**
77    * Ajoute un utilisateur au groupe
78    * 
79    * @param[in] $object Un object user ($this -> userObjectType) : l'utilisateur à ajouter
80    * 
81    * @retval boolean true si l'utilisateur à été ajouté, False sinon
82    **/  
83   function addOneMember($object) {
84     return $this -> addOneObjectInRelation($object,$this -> memberAttr, $this -> userObjectType);
85   }
86   
87   /**
88    * Supprime un utilisateur du groupe
89    * 
90    * @param[in] $object Un object (type : $this -> userObjectType) : l'utilisateur à supprimer
91    * 
92    * @retval boolean true si l'utilisateur à été supprimé, False sinon
93    **/  
94   function deleteOneMember($object) {
95     return $this -> deleteOneObjectInRelation($object,$this -> memberAttr,$this -> userObjectType);
96   }
97   
98  /**
99   * Renome un utilisateur du groupe
100   * 
101   * @param[in] $object Un object (type : $this -> userObjectType) : l'utilisateur à renomer
102   * @param[in] $oldDn string L'ancien DN de l'utilisateur
103   * 
104   * @retval boolean True en cas de succès, False sinon
105   */
106   function renameOneMember($object,$oldDn) {
107     return $this -> renameOneObjectInRelation($object,$oldDn,$this -> memberAttr,$this -> userObjectType);
108   }
109   
110   /**
111    * Met à jour les groupes d'un utilisateur
112    * 
113    * @param[in] $object Mixed Un object (type : $this -> userObjectType) : l'utilisateur
114    * @param[in] $listDns Array(string) Un tableau des DNs des groupes de l'utilisateur
115    * 
116    * @retval boolean true si tout c'est bien passé, False sinon
117    **/  
118   function updateUserGroups($object,$listDns) {
119     return $this -> updateObjectsInRelation($object,$listDns,$this -> memberAttr,$this -> userObjectType);
120   }
121 }
122
123 ?>