मैं उन सभी समूहों की सूची बनाने के लिए एलडीएपी (जावा और PHP से) के माध्यम से सक्रिय निर्देशिका से पूछताछ कर रहा हूं, जो उपयोगकर्ता का सदस्य है। इस सूची में कम से कम सभी समूह (संगठनात्मक-इकाइयां वैकल्पिक) होनी चाहिए जिनमें समूह शामिल हैं जो उपयोगकर्ता सीधे सदस्य हैं। उदाहरण के लिए:एडी एलडीएपी के माध्यम से - मैं सभी पूर्वजों को एक प्रश्न से कैसे वापस कर सकता हूं?
उपयोगकर्ता 1 समूह ए, ग्रुपबी और ग्रुप सी का सदस्य है।
ग्रुप ए ग्रुप डी का सदस्य है।
मैं एक एलडीएपी क्वेरी बनाने का एक तरीका ढूंढ रहा हूं जो समूह ए, ग्रुपबी, ग्रुपसी, और समूह एक बार में वापस लौटाएगा।
मेरा वर्तमान कार्यान्वयन नीचे है, लेकिन मैं इस जानकारी को इकट्ठा करने के लिए एक और अधिक प्रभावी तरीका ढूंढ रहा हूं।
वर्तमान अनुभवहीन कार्यान्वयन (छद्म कोड में)
user = ldap_search('samaccountname=johndoe', baseDN);
allGroups = array();
foreach (user.getAttribute('memberOf') as groupDN) {
allGroups.push(groupDN);
allGroups = allGroups.merge(getAncestorGroups(groupDN));
}
function getAncestorGroups(groupDN) {
allGroups = array();
group = ldap_lookup(groupDN);
parents = group.getAttribute('memberOf');
foreach (parents as groupDN) {
allGroups.push(groupDN);
allGroups = allGroups.merge(getAncestorGroups(groupDN));
}
return allGroups;
}