mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-26 11:52:59 +01:00
- LSeegroup :
-> Utilisation des méthodes standardisées de manipulation des relations entre LSldapObject
This commit is contained in:
parent
82f715b3d9
commit
4c2a4efa7b
1 changed files with 13 additions and 128 deletions
|
@ -28,6 +28,7 @@
|
||||||
class LSeegroup extends LSldapObject {
|
class LSeegroup extends LSldapObject {
|
||||||
|
|
||||||
var $userObjectType = 'LSeepeople';
|
var $userObjectType = 'LSeepeople';
|
||||||
|
var $memberAttr = 'uniqueMember';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructeur
|
* Constructeur
|
||||||
|
@ -46,21 +47,19 @@ class LSeegroup extends LSldapObject {
|
||||||
$this -> LSldapObject('LSeegroup',$config);
|
$this -> LSldapObject('LSeegroup',$config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ========== Members ========== */
|
||||||
/**
|
/**
|
||||||
* Retourne la liste des groupes d'un utilisateur
|
* Retourne la liste des groupes pour utilisateur
|
||||||
*
|
*
|
||||||
* Retourne un tableau de LSeegroup correspondant aux groupes
|
* Retourne un tableau de LSinhaGroup correspondant aux groupes
|
||||||
* auxquels appartient un utilisateur
|
* auxquels appartient un utilisateur
|
||||||
*
|
*
|
||||||
* @param[in] $userObject Un object user (type : $this -> userObjectType)
|
* @param[in] $userObject Un object user (type : $this -> userObjectType)
|
||||||
*
|
*
|
||||||
* @retval Array of LSeegroup Les groupes de l'utilisateur
|
* @retval Array of LSinhaGroup Les groupes de l'utilisateur
|
||||||
**/
|
**/
|
||||||
function listUserGroups($userObject) {
|
function listUserGroups($userObject) {
|
||||||
$dn = $userObject -> getDn();
|
return $this -> listObjectsInRelation($userObject,$this -> memberAttr,$this -> userObjectType);
|
||||||
$filter = $this -> getObjectFilter();
|
|
||||||
$filter = '(&'.$filter.'(uniqueMember='.$dn.'))';
|
|
||||||
return $this -> listObjects($filter,$GLOBALS['LSsession'] -> ldapServer['ldap_config']['basedn'],array('scope' => 'sub'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -71,24 +70,7 @@ class LSeegroup extends LSldapObject {
|
||||||
* @retval boolean true si l'utilisateur à été ajouté, False sinon
|
* @retval boolean true si l'utilisateur à été ajouté, False sinon
|
||||||
**/
|
**/
|
||||||
function addOneMember($object) {
|
function addOneMember($object) {
|
||||||
if ($object instanceof $this -> userObjectType) {
|
return $this -> addOneObjectInRelation($object,$this -> memberAttr, $this -> userObjectType);
|
||||||
if ($this -> attrs['uniqueMember'] instanceof LSattribute) {
|
|
||||||
$dn = $object -> getDn();
|
|
||||||
$values = $this -> attrs['uniqueMember'] -> getValue();
|
|
||||||
if (!is_array($values)) {
|
|
||||||
$updateData = array($dn);
|
|
||||||
}
|
|
||||||
else if (!in_array($dn,$values)) {
|
|
||||||
$values[]=$dn;
|
|
||||||
$updateData = $values;
|
|
||||||
}
|
|
||||||
if (isset($updateData)) {
|
|
||||||
return $GLOBALS['LSldap'] -> update($this -> getType(),$this -> getDn(), array('uniqueMember' => $updateData));
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -99,29 +81,11 @@ class LSeegroup extends LSldapObject {
|
||||||
* @retval boolean true si l'utilisateur à été supprimé, False sinon
|
* @retval boolean true si l'utilisateur à été supprimé, False sinon
|
||||||
**/
|
**/
|
||||||
function deleteOneMember($object) {
|
function deleteOneMember($object) {
|
||||||
if ($object instanceof $this -> userObjectType) {
|
return $this -> deleteOneObjectInRelation($object,$this -> memberAttr,$this -> userObjectType);
|
||||||
if ($this -> attrs['uniqueMember'] instanceof LSattribute) {
|
|
||||||
$dn = $object -> getDn();
|
|
||||||
$values = $this -> attrs['uniqueMember'] -> getValue();
|
|
||||||
if ((!is_array($values)) && (!empty($values))) {
|
|
||||||
$values = array($values);
|
|
||||||
}
|
|
||||||
if (is_array($values)) {
|
|
||||||
$updateData=array();
|
|
||||||
foreach($values as $value) {
|
|
||||||
if ($value!=$dn) {
|
|
||||||
$updateData[]=$value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $GLOBALS['LSldap'] -> update($this -> getType(),$this -> getDn(), array('uniqueMember' => $updateData));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renome un utilisateur
|
* Renome un utilisateur du groupe
|
||||||
*
|
*
|
||||||
* @param[in] $object Un object (type : $this -> userObjectType) : l'utilisateur à renomer
|
* @param[in] $object Un object (type : $this -> userObjectType) : l'utilisateur à renomer
|
||||||
* @param[in] $oldDn string L'ancien DN de l'utilisateur
|
* @param[in] $oldDn string L'ancien DN de l'utilisateur
|
||||||
|
@ -129,98 +93,19 @@ class LSeegroup extends LSldapObject {
|
||||||
* @retval boolean True en cas de succès, False sinon
|
* @retval boolean True en cas de succès, False sinon
|
||||||
*/
|
*/
|
||||||
function renameOneMember($object,$oldDn) {
|
function renameOneMember($object,$oldDn) {
|
||||||
if ($object instanceof $this -> userObjectType) {
|
return $this -> renameOneObjectInRelation($object,$oldDn,$this -> memberAttr,$this -> userObjectType);
|
||||||
if ($this -> attrs['uniqueMember'] instanceof LSattribute) {
|
|
||||||
$values = $this -> attrs['uniqueMember'] -> getValue();
|
|
||||||
if ((!is_array($values)) && (!empty($values))) {
|
|
||||||
$values = array($values);
|
|
||||||
}
|
|
||||||
if (is_array($values)) {
|
|
||||||
$updateData=array();
|
|
||||||
foreach($values as $value) {
|
|
||||||
if ($value!=$oldDn) {
|
|
||||||
$updateData[] = $value;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$updateData[] = $object-> getDn();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $GLOBALS['LSldap'] -> update($this -> getType(),$this -> getDn(), array('uniqueMember' => $updateData));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Met à jour les groupes d'un utilisateur
|
* Met à jour les groupes d'un utilisateur
|
||||||
*
|
*
|
||||||
* @param[in] $userObject Mixed Un object (type : $this -> userObjectType) : l'utilisateur
|
* @param[in] $object Mixed Un object (type : $this -> userObjectType) : l'utilisateur
|
||||||
* @param[in] $listDns Array(string) Un tableau des DNs des groupes de l'utilisateur
|
* @param[in] $listDns Array(string) Un tableau des DNs des groupes de l'utilisateur
|
||||||
*
|
*
|
||||||
* @retval boolean true si tout c'est bien passé, False sinon
|
* @retval boolean true si tout c'est bien passé, False sinon
|
||||||
**/
|
**/
|
||||||
function updateUserGroups($userObject,$listDns) {
|
function updateUserGroups($object,$listDns) {
|
||||||
$currentGroups = $this -> listUserGroups($userObject);
|
return $this -> updateObjectsInRelation($object,$listDns,$this -> memberAttr,$this -> userObjectType);
|
||||||
$type=$this -> getType();
|
|
||||||
if(is_array($currentGroups)) {
|
|
||||||
if (is_array($listDns)) {
|
|
||||||
$dontDelete=array();
|
|
||||||
$dontAdd=array();
|
|
||||||
for ($i=0;$i<count($currentGroups);$i++) {
|
|
||||||
$dn = $currentGroups[$i] -> getDn();
|
|
||||||
if (in_array($dn, $listDns)) {
|
|
||||||
$dontDelete[$i]=true;
|
|
||||||
$dontAdd[]=$dn;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for($i=0;$i<count($currentGroups);$i++) {
|
|
||||||
if ($dontDelete[$i]) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (!$currentGroups[$i] -> deleteOneMember($userObject)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($listDns as $dn) {
|
|
||||||
if (in_array($dn,$dontAdd)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$object = new $type();
|
|
||||||
if ($object -> loadData($dn)) {
|
|
||||||
if (!$object -> addOneMember($userObject)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(!is_array($listDns)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
foreach($listDns as $dn) {
|
|
||||||
$object = new $type();
|
|
||||||
if ($object -> loadData($dn)) {
|
|
||||||
if (!$object -> addOneMember($userObject)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue