어떻게 다차원으로 만들 수 있습니까? 각 검색 결과 항목에는 복수의 속성 :attributes => ['sAMAccountName','givenName','SN','mail']
이 있습니다. 결과에는 많은 항목이있을 수 있습니다. 이 코드는 여러 속성이있는 항목을 하나만 만들 때 유용합니다.Ruby - 다차원 해시
def self.Find(attribute, loginID)
conn = Net::LDAP.new :host => SERVER,
:port => PORT,
:base => BASE,
:auth => {
:username => 'admin',
:password => 'admin',
:method => :simple
}
if conn.bind
result = HashWithIndifferentAccess.new
conn.search(:base => LDAPBASE,
:filter => Net::LDAP::Filter.eq(attribute, loginID+"*"),
:attributes => ['sAMAccountName','givenName','SN','mail'],
:return_result => true
).each do |entries|
entries.each do |attribute, values|
values.each do |value|
result[attribute] = value
end
end
end
result
end
end
내가 LDAP에서 얻을 실제 응답이 같다 -
puts result.to_s
{
"dn"=>"CN=somename\\, somefirstname,OU=Users,DC=site,DC=com",
"sn"=>"somename",
"givenname"=>"somefirstname",
"samaccountname"=>"someuserid",
"mail"=>"[email protected]"
}
검색이기 때문에
*이 일치하는 모든 항목을 찾을 수있는 와일드 카드가 있습니다. Ldap은 위 형식으로 여러 항목을 리턴합니다. 이와 비슷한 -{
"dn"=>"CN=somename\\, somefirstname1,OU=Users,DC=site,DC=com",
"sn"=>"somename1",
"givenname"=>"somefirstname1",
"samaccountname"=>"someuserid1",
"mail"=>"[email protected]"
},
{
"dn"=>"CN=somename\\, somefirstname2,OU=Users,DC=site,DC=com",
"sn"=>"somename2",
"givenname"=>"somefirstname2",
"samaccountname"=>"someuserid2",
"mail"=>"someone2[email protected]"
},
{
"dn"=>"CN=somename\\, somefirstname3,OU=Users,DC=site,DC=com",
"sn"=>"somename3",
"givenname"=>"somefirstname3",
"samaccountname"=>"someuserid3",
"mail"=>"[email protected]"
},
A[a=>1,b=>11,c=>111]
B[a=>2,b=>22,c=>222]
C[a=>3,b=>33,c=>333]
D[a=>4,b=>44,c=>444]
conn.search 호출의 결과와 예제를 얻기 원하는 형식으로 첨부해야합니다. –
위의 예가 원하는 것입니까? –
@PaulChechetin - Hey Paul, 내 질문을 업데이트했습니다. –