diff --git a/objets.py b/objets.py index bd876dc..70417e0 100644 --- a/objets.py +++ b/objets.py @@ -655,10 +655,10 @@ class proprio(CransLdapObject): self.history_add(login, u"%s %.2f Euros [%s]" % (transaction, abs(diff), comment)) self["solde"] = new_solde - def machines(self): + def machines(self, mode=None): """Renvoie la liste des machines""" if self._machines is None: - self._machines = self.conn.search(u'mid=*', dn = self.dn, scope = 1, mode=self.mode) + self._machines = self.conn.search(u'mid=*', dn = self.dn, scope = 1, mode=self.mode if mode is None else mode) for m in self._machines: m._proprio = self return self._machines @@ -706,11 +706,11 @@ class machine(CransLdapObject): super(machine, self).__init__(conn, dn, mode, ldif) self._proprio = None - def proprio(self): + def proprio(self, mode=None): u"""Renvoie le propriƩtaire de la machine""" parent_dn = self.dn.split(',', 1)[1] if not self._proprio: - self._proprio = new_cransldapobject(self.conn, parent_dn, self.mode) + self._proprio = new_cransldapobject(self.conn, parent_dn, self.mode if mode is None else mode) return self._proprio def blacklist_actif(self, excepts=[]): diff --git a/services.py b/services.py index 6806dab..f853439 100644 --- a/services.py +++ b/services.py @@ -38,7 +38,7 @@ def services_to_args_mail_modif(x): return [ "uid=%s" % x.parent['uid'][0] ] elif isinstance(x, attributs.Attr) and x.__class__ in [ attributs.exempt ] + services_to_attrs['ports']: return [ "mid=%s" % x.parent['mid'][0] ] - elif isinstance(x.parent, objets.machine) and isinstance(x.parent.proprio(), objets.AssociationCrans): + elif isinstance(x.parent, objets.machine) and isinstance(x.parent.proprio(mode='ro'), objets.AssociationCrans): return [ "mid=%s" % x.parent['mid'][0] ] else: return [] @@ -88,7 +88,7 @@ def services_to_args_del_user(x): def services_to_args_blacklist(x): if isinstance(x.parent, objets.machine): - return [ str(ip) for m in x.parent.proprio().machines() for ip in m['ipHostNumber'] ] + return [ str(ip) for m in x.parent.proprio(mode='ro').machines() for ip in m['ipHostNumber'] ] elif isinstance(x.parent, objets.proprio): return [ str(ip) for m in x.parent.machines() for ip in m['ipHostNumber'] ] else: