10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/another/ldap/proxy/filter_converter.rb', line 10
def self.from_server_to_client(filter)
return filter unless filter.is_a?(Array)
operator, *items = filter.compact
case operator
when :eq
Net::LDAP::Filter.eq(items.first, items.last)
when :ge
Net::LDAP::Filter.ge(items.first, items.last)
when :le
Net::LDAP::Filter.le(items.first, items.last)
when :present
Net::LDAP::Filter.pres(items.first)
when :and
Net::LDAP::Filter.join(from_server_to_client(items.first),
from_server_to_client(items.last))
when :or
Net::LDAP::Filter.intersect(from_server_to_client(items.first),
from_server_to_client(items.last))
when :not
Net::LDAP::Filter.negate(from_server_to_client(items.first))
else
raise "Unsupported server filter operator: #{operator}"
end
end
|