Csoportból tagok listájának kiszedése

+6 votes
asked Mar 29, 2014 in IRF tantárgy by majgab91 (77 points)  
retagged Mar 29, 2014 by nadudvarit

Helló!

Az lenne a kérdésem, hogy ha nekem van egy groupOfNames objektumom, ami a member attribútumában tárol több értéket, akkor hogyan tudom kiszedni ezeket az értékeket a groupOfNames-ből? Ismerem a dn-jét neki, de bárhogyan próbálkozom a lekéréssel, vagy egyáltalán nem kapok eredményt, vagy pedig a groupOfNames dn-jét kapom vissza.

Ilyen lekérésekkel próbálkoztam eddig:

search("cn=Project Angel,ou=Projects,dc=irf,dc=local", 2, "(member=*)")

Ez a cn=Project Angel,ou=Projects,dc=irf,dc=local dn-t adta vissza találatként. Ha a membernek a * helyett egy konkrét person dn-jét adom át, akkor is ugyanez. Ha egy szinttel följebb megyek, és az ou=Projects,dc=irf,dc=local bázisból szűrök, akkor az összes project dn-jét magkapom. Ha megpróbálok szűrni, pl. member=*ou=Personnel*, akkor nincs találat.

Hogyan kaphatnám meg az összes member-t egy project-ből?

1 Answer

+3 votes
answered Mar 29, 2014 by IcehT (126 points)  
selected Mar 29, 2014 by majgab91
 
Best answer

Üdv!
esetleg próbáld így:
search("cn=Project Angel,ou=Projects,dc=irf,dc=local", 2, '',['member'])
ekkor visszaadja listában a tagokat.

commented Mar 29, 2014 by lac21 (20 points)  
Nem egészen:D Ebben a dictionary-ben is csak egy kulcs lesz('member') és egy ahhoz tartozó érték, ami ez a 102 dn egymás után felsorolva. Ezt nem jól látom? Mert amit én szeretnék az az, hogy ezt a 102 membert egyesével tudjam kezelni és az így még nem valósult meg. Vagy hogy máshogy lehetne ebből a hosszú értékből kiszedni az egyes dn-eket, hogy összehasonlíthassam máshonnan megkapott dn-ekkel?
commented Mar 29, 2014 by camee (36 points)  
Mit néztél el? Valamit én is elnézek.
commented Mar 29, 2014 by lac21 (20 points)  
A resultnak véletlenül nem a search visszatérési értékét akartam értékül adni, hanem benne volt még egy printben is a search és azt...
commented Mar 29, 2014 by IcehT (126 points)  
az search funkció visszatér egy listával. Ebben a listában szerepelnek a keresési eredmények, LDAPEntry-k

Ha egyetlen, konkrét Projectre keresel, akkor értelemszerűen ez a lista egy elemű lesz, ezért a result[0] (több elem esetén értelemszerűen itt egy ciklusváltozó áll)

A result[0] visszaad egy objektumot.
ennek pl le tudjuk kérni a dn-jét (result[0].dn) vagy hozzáférhetünk a mezőihez, pl result[0]['member']. Ez történetesen ha minden igaz egy LDAPValueList-t ad vissza. Kezelheted listaként. (+ mint összefűzés, iterálhatsz rajta stb)
commented Mar 29, 2014 by lac21 (20 points)  
Ó végre! Ezt nem tudtam eddig, hogy ezt még tudom listaként kezelni. Köszi szépen!
...