Remise à 1 appel ldap pour la fonction allMachinesAdherents
This commit is contained in:
parent
08cda773b0
commit
4a0a514986
1 changed files with 15 additions and 1 deletions
16
lc_ldap.py
16
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'):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue