私は、従業員の名前をアクティブなディレクトリから引き出して、レール用のアプリケーションを作成しています。 「会議室」などのcn = peopleを持つ「実在しない人」のエントリがいくつか存在することを除いて、全体として機能しています。私はそれらを排除する必要があります。私は反復的なフィルタ結合でそれを行うことができますが、それはひどく非効率的でクラージーと思われます。このldapフィルタ結合は1つのステートメントで実行できますか?
私が今持っていることは「C」で始まる「A」(私は微調整する必要があることを知っている)と、指定された名前以上の姓で私にすべての従業員を与える
filter1 = (Net::LDAP::Filter.ge("sn", "a"))
filter2 = Net::LDAP::Filter.eq("givenName", "c*")
filter3 = Net::LDAP::Filter.ne("samaccountname", "croom")
treebase = "dc=xxxxxx,dc=com"
joined_filter = Net::LDAP::Filter.join(filter1, filter2)
joined_filter = Net::LDAP::Filter.join(joined_filter, filter3)
@temp_search = ldap.search(:base => treebase, :filter => joined_filter)
です。 Filter3は会議室「croom」を除外します。配列をフィルターに渡すには何らかの方法があるはずです。 3つのフィルタをすべて結合に渡そうとすると、「間違った引数数」が発生する
'croom' 'croom2' 'breakroom'などの複数の除外を渡す方法はありますか?