diff --git a/attributs.py b/attributs.py index 76726cc..f80cd9c 100644 --- a/attributs.py +++ b/attributs.py @@ -104,13 +104,18 @@ class Attr(object): """Vérifie l'unicité dans la base de la valeur (mailAlias, chbre, etc...)""" attr = self.__class__.__name__ - if attr in [ "mid", "uid", "cid", "fid", "aid"]: #... etc - assert not self.conn.search('%s=%s' % (attr, str(self))) - if attr in [ "mailAlias", "canonicalAlias", 'mail', 'uid']: + if attr in ["mid", "uid", "cid", "fid", "aid", "ipHostNumber", "uidNumber"]: + res = self.conn.search('%s=%s' % (attr, str(self))) + if res: + raise ValueError("%s déjà existant" % attr, [r.dn for r in res]) + if attr in ["mailAlias", "canonicalAlias", 'mail', 'uid']: res = self.conn.search('(|(mail=%s)(mailAlias=%s)(canonicalAlias=%s))' % ((str(self),)*3)) if res: raise ValueError("Mail déjà existant", [r.dn for r in res]) - #assert not mailexist(str(self)) + if attr in ["host", "hostAlias"]: + res = self.conn.search('(|(host=%s)(hostAlias=%s))' % ((str(self),)*2)) + if res: + raise ValueError("Hôte déjà existant", [r.dn for r in res]) def _check_users_restrictions(self, values): """Vérifie les restrictions supplémentaires imposées selon les