Sziasztok!
Pont olyan megoldást találtam ki, mint ami itt felmerült, tehát hogy az adott egyetemi szervezeti egységbe tartozó tagok listáján (LDAPEntry-k) végigmegyek, és minden lépésben ellenőrzöm, hogy az adott DN-nel rendelkező tag szerepel-e egy adott projektben. Ezenkívül az egyeztetést minden egyes projektre elvégzem (a projektek nevének listáját pedig előzetesen egy másik lépésben kapom meg).
Viszont amennyiben konkrét lekérdezést hajtok végre, akkor tulajdonképpen a teljes, projekthez tartozó részfát megkapom, és ez felesleges hálózati forgalomnak tűnik, itt egy konkrét, kipróbálható példa, egy megadott DN-nel:
import pprint
pp = pprint.PrettyPrinter(indent=2)
projectTestSearch = conn.search("cn=Project Angel,ou=Projects,dc=irf,dc=local", 2, '(member=cn=aappleby,ou=Computational Complexity,ou=Department of Computer Science,ou=Faculty of Informatics,ou=Faculties,ou=University,dc=irf,dc=local)')
pp.pprint(projectTestSearch)
Nos, ezt tudom úgy még szűrni, hogy megadok egy attribútumlistát, mondjuk csak a CN-t kérdezem le:
projectTestSearch = conn.search("cn=Project Angel,ou=Projects,dc=irf,dc=local", 2, '(member=cn=aappleby,ou=Computational Complexity,ou=Department of Computer Science,ou=Faculty of Informatics,ou=Faculties,ou=University,dc=irf,dc=local)',
['cn'])
Ez így jó megközelítés arra, hogy csupán annyit ellenőrizzek, egy tag része-e a projektnek?
És ha már a hálózati forgalom csökkentése felmerült: egyáltalán jó ez a megközelítés így, hogy minden cikluslépésben az LDAP-szerverhez fordulok? Vagy nem is tudnám másként?
Azért merült fel bennem, hogy ez potenciális probléma, mert így van némi overhead a dologban, főleg, ha nem lokális LDAP-szerverről van szó.
Ebből a válaszból úgy tűnik, hogy olyan nagyon nincs jobb megoldás, de hátha mégis létezik elegánsabb módszer, amiről nem tudok.
Előre is köszönöm a válasz(oka)t!