Module: GitHub::Ldap::Filter
- Included in:
- Domain
- Defined in:
- lib/github/ldap/filter.rb
Instance Method Summary collapse
-
#group_filter(group_names, user_dn = nil) ⇒ Object
Filter to get the configured groups in the ldap server.
-
#member_filter(user_dn = nil) ⇒ Object
Filter to check a group membership.
Instance Method Details
#group_filter(group_names, user_dn = nil) ⇒ Object
Filter to get the configured groups in the ldap server. Takes the list of the group names and generate a filter for the groups with cn that match and also include members:
group_names: is an array of group CNs. user_dn: is an optional member to scope the search to.
Returns a Net::LDAP::Filter.
12 13 14 15 |
# File 'lib/github/ldap/filter.rb', line 12 def group_filter(group_names, user_dn = nil) or_filters = group_names.map {|g| Net::LDAP::Filter.eq("cn", g)}.reduce(:|) member_filter(user_dn) & or_filters end |
#member_filter(user_dn = nil) ⇒ Object
Filter to check a group membership.
user_dn: is an optional user_dn to scope the search to.
Returns a Net::LDAP::Filter.
22 23 24 25 26 27 28 |
# File 'lib/github/ldap/filter.rb', line 22 def member_filter(user_dn = nil) if user_dn Net::LDAP::Filter.eq("member", user_dn) else Net::LDAP::Filter.pres("member") end end |