Commit 63063be2 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 c3f98c15
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
CHANGELOG
=========

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)
------------------

+32 −4
Original line number Diff line number Diff line
@@ -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
+11 −0
Original line number Diff line number Diff line
@@ -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)
     *