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 os
|
||||||
import sys
|
import sys
|
||||||
import re
|
import re
|
||||||
|
import time
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
|
|
||||||
import ldap
|
import ldap
|
||||||
|
@ -246,6 +247,7 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object):
|
||||||
res = {}
|
res = {}
|
||||||
parent = {}
|
parent = {}
|
||||||
machines = {}
|
machines = {}
|
||||||
|
factures = {}
|
||||||
# (proxying de la base ldap)
|
# (proxying de la base ldap)
|
||||||
for dn, attrs in self.search_s(variables.base_dn, scope=2):
|
for dn, attrs in self.search_s(variables.base_dn, scope=2):
|
||||||
# On crée les listes des machines et propriétaires
|
# 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):
|
if not machines.has_key(parent_dn):
|
||||||
machines[parent_dn] = []
|
machines[parent_dn] = []
|
||||||
machines[parent_dn].append(m)
|
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):
|
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))
|
parent[dn] = objets.new_cransldapobject(self, dn, mode, uldif=ldif_to_uldif(attrs))
|
||||||
allmachines = []
|
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]._machines = mlist
|
||||||
|
parent[dn]._factures = flist
|
||||||
|
parent[dn]._factures_last_update = time.time()
|
||||||
for m in mlist:
|
for m in mlist:
|
||||||
m._proprio = parent[dn]
|
m._proprio = parent[dn]
|
||||||
allmachines.append(m)
|
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)
|
return allmachines, parent.values() # on renvoie la liste des machines et des adherents (dont club et crans)
|
||||||
|
|
||||||
def allMachines(self, mode='ro'):
|
def allMachines(self, mode='ro'):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue