Skip to content
Snippets Groups Projects
Commit f159d1a3 authored by David Surville's avatar David Surville
Browse files

- Modification de l'entité "Groupe"

  - gestion de l'attribut gidNumber et utilisation de la class d'objet "extensibleObject"
  - gestion de l'utilisateur uid=nobody,ou=system lorsqu'un groupe ne possède aucun membre alors que l'attribut "member" est obligatoire
- Ajout d'une fonction qui teste l'existance d'une entité dans Ldap directement au niveau de l'entité
parent 77acdffa
Branches
Tags
No related merge requests found
......@@ -6,6 +6,24 @@ CHANGELOG
- PHP 8 requis.
5.0.5 (07/11/2024)
------------------
- Modification de l'entité "Groupe"
- gestion de l'attribut gidNumber et utilisation de la class d'objet "extensibleObject"
- gestion de l'utilisateur uid=nobody,ou=system lorsqu'un groupe ne possède aucun membre alors que l'attribut "member" est obligatoire
- Ajout d'une fonction qui teste l'existance d'une entité dans Ldap directement au niveau de l'entité
5.0.4 (29/02/2024)
------------------
- Capture des erreurs renvoyées par la fonction ldap_search
5.0.3 (22/11/2023)
------------------
- Ajout de l'option "useStartTls" pour utiliser une connexion TLS qui est recommandé
4.0.2 (01/04/2022)
------------------
......
......@@ -3,6 +3,7 @@
namespace UnicaenLdap\Entity\Base;
use UnicaenLdap\Entity\Entity;
use UnicaenLdap\Entity\Group as GroupEntity;
use UnicaenLdap\Entity\People as PeopleEntity;
use UnicaenLdap\Entity\Structure as StructureEntity;
use UnicaenLdap\Entity\System as SystemEntity;
......@@ -36,6 +37,7 @@ class Group extends Entity
'top',
'groupOfNames',
'supannGroupe',
'extensibleObject' // attribut gidNumber
];
/**
......@@ -54,6 +56,7 @@ class Group extends Entity
'supannGroupeLecteurDN',
'supannGroupeAdminDN',
'supannRefId',
'gidNumber'
];
/**
......@@ -127,7 +130,10 @@ class Group extends Entity
}
}, $value);
$this->appendOrNot('member', array_filter($value), $append);
$value = array_filter($value);
$members = !$append ? (!empty($value) ? $value : [$this->getMemberNobody()]) : $value;
$this->appendOrNot('member', $members, $append);
return $this;
}
......@@ -151,6 +157,8 @@ class Group extends Entity
return $val->toString();
} elseif ($val instanceof PeopleEntity) {
return $val->getDn();
} elseif ($val instanceof GroupEntity) {
return $val->getDn();
}else {
return null;
}
......@@ -204,7 +212,7 @@ class Group extends Entity
return $val->toString();
} elseif ($val instanceof PeopleEntity) {
return $val->getDn();
} elseif ($val instanceof SystemEntity) {
} elseif ($val instanceof GroupEntity) {
return $val->getDn();
}
else {
......@@ -236,7 +244,7 @@ class Group extends Entity
return $val->toString();
} elseif ($val instanceof PeopleEntity) {
return $val->getDn();
} elseif ($val instanceof SystemEntity) {
} elseif ($val instanceof GroupEntity) {
return $val->getDn();
}
else {
......@@ -269,4 +277,24 @@ class Group extends Entity
return $this;
}
/**
* Attribut Ldap "gidNumber"
*
* @param array|string|null $value
* @param bool $append
* @return self
* @throws Exception
* @throws LdapException
*/
public function setGidNumber($value = null, $append = false)
{
$value = $this->preFormat($value);
$value = array_filter($value, function ($v) {
return preg_match('/^\d+$/', $v);
});
$this->appendOrNot('gidNumber', $value, $append);
return $this;
}
}
\ No newline at end of file
......@@ -466,6 +466,17 @@ abstract class Entity
}
}
/**
* Teste si l'entité existe
*
* @return bool
* @throws LdapException
*/
public function exists()
{
return $this->attach()->getNode()->exists();
}
/**
* Déplacement de l'entité dans un autre OU (Organizational Unit)
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment