From 4a0a514986ae4ca0917569daf736bd7f91a996a4 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Mon, 7 Sep 2015 12:50:39 +0200 Subject: [PATCH] =?UTF-8?q?Remise=20=C3=A0=201=20appel=20ldap=20pour=20la?= =?UTF-8?q?=20fonction=20allMachinesAdherents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lc_ldap.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lc_ldap.py b/lc_ldap.py index ef6f4fa..f557b50 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -38,6 +38,7 @@ import os import sys import re +import time from contextlib import contextmanager import ldap @@ -246,6 +247,7 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object): res = {} parent = {} machines = {} + factures = {} # (proxying de la base ldap) for dn, attrs in self.search_s(variables.base_dn, scope=2): # On crée les listes des machines et propriétaires @@ -255,14 +257,26 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object): if not machines.has_key(parent_dn): machines[parent_dn] = [] machines[parent_dn].append(m) + if dn.startswith('fid='): # les factures + f = objets.new_cransldapobject(self, dn, mode, uldif=ldif_to_uldif(attrs)) + parent_dn = dn.split(',', 1)[1] + if not factures.has_key(parent_dn): + factures[parent_dn] = [] + factures[parent_dn].append(f) elif (dn.startswith('aid=') or dn.startswith('cid=') or dn == variables.base_dn) and not parent.has_key(dn): parent[dn] = objets.new_cransldapobject(self, dn, mode, uldif=ldif_to_uldif(attrs)) allmachines = [] - for dn, mlist in machines.iteritems(): # on associe propriétaires et machines + for dn in parent: # on associe propriétaires et factures, machines + mlist = machines.get(dn, []) + flist = factures.get(dn, []) parent[dn]._machines = mlist + parent[dn]._factures = flist + parent[dn]._factures_last_update = time.time() for m in mlist: m._proprio = parent[dn] allmachines.append(m) + for f in flist: + f._proprio = parent[dn] return allmachines, parent.values() # on renvoie la liste des machines et des adherents (dont club et crans) def allMachines(self, mode='ro'):