From 8ce84e75894d8e1b440752d7576607565d11d76f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Mon, 8 Apr 2013 00:14:14 +0200 Subject: [PATCH] =?UTF-8?q?[lc=5Fldap]=20create=20et=20save=20v=C3=A9rifie?= =?UTF-8?q?nt=20que=20les=20attributs=20non=20optionnels=20sont=20fournis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lc_ldap.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lc_ldap.py b/lc_ldap.py index dd809d5..0fb6f4c 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -529,6 +529,13 @@ class CransLdapObject(object): """Crée l'objet dans la base ldap, cette méthode vise à faire en sorte que l'objet se crée lui-même, si celui qui essaye de le modifier a les droits de le faire.""" + objet = self.__class__.__name__ + + for attribut in self.attribs: + if not attribut.optional: + nom_attr = attribut.__name__ + if len(self._modifs.get(nom_attr, [])) <= 0: + raise attributs.OptionalError("L'objet %s que vous créez doit posséder au moins un attribut %s" % (objet, nom_attr)) # Création de la requête LDAP modlist = addModlist(cldif_to_ldif(self._modifs)) @@ -542,6 +549,14 @@ class CransLdapObject(object): if self.mode not in ['w', 'rw']: raise EnvironmentError("Objet en lecture seule, réessayer en lecture/écriture") + objet = self.__class__.__name__ + + for attribut in self.attribs: + if not attribut.optional: + nom_attr = attribut.__name__ + if len(self._modifs.get(nom_attr, [])) <= 0: + raise attributs.OptionalError("L'objet %s que vous créez doit posséder au moins un attribut %s" % (objet, nom_attr)) + # On récupère la liste des modifications modlist = self.get_modlist() try: