diff --git a/lc_ldap.py b/lc_ldap.py index 24a558e..95690cf 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -363,8 +363,15 @@ class CransLdapObject(object): def __getitem__(self, attr): if self.mode in [ 'w', 'rw' ]: return [ v for v in self._modifs[attr] ] - else: + elif self.attrs.has_key(attr): return [ v for v in self.attrs[attr] ] + elif self.has_key(attr): + return [] + raise KeyError(attr) + + def has_key(self,attr): + return attr in self.ofields or attr in self.xfields or\ + attr in self.ufields or attr in self.mfields def __setitem__(self, attr, values): if self.mode not in ['w', 'rw']: @@ -596,7 +603,7 @@ class machineCrans(machine): ofields = machine.ofields + ['nombrePrises'] class borneWifi(machine): - ufields = machine.ufields + ['canal', 'puissane', 'hotspot', + ufields = machine.ufields + ['canal', 'puissance', 'hotspot', 'prise', 'positionBorne', 'nvram'] class facture(CransLdapObject):