class UcbGroups::MembershipFilter
Attributes
groups[RW]
namespace[RW]
orgs[RW]
Public Class Methods
new(namespace, groups, orgs)
click to toggle source
# File lib/ucb_groups/membership_filter.rb, line 5 def initialize(namespace, groups, orgs) @namespace = namespace @groups = groups @orgs = orgs end
Public Instance Methods
to_s()
click to toggle source
# File lib/ucb_groups/membership_filter.rb, line 11 def to_s @filter ||= begin if groups.empty? objectclass_filter & orgs_filter elsif orgs.empty? objectclass_filter & groups_filter else objectclass_filter & (groups_filter & orgs_filter) end end @filter.to_rfc2254 end
Private Instance Methods
group_filter(group)
click to toggle source
# File lib/ucb_groups/membership_filter.rb, line 35 def group_filter(group) Net::LDAP::Filter. eq("ismemberof", "cn=edu:berkeley:app:#{self.namespace}:#{group},ou=campus groups,dc=berkeley,dc=edu") end
groups_filter()
click to toggle source
# File lib/ucb_groups/membership_filter.rb, line 30 def groups_filter groups.map { |group| group_filter(group) } .reduce { |accum, filter| accum.send("|", filter) } end
objectclass_filter()
click to toggle source
# File lib/ucb_groups/membership_filter.rb, line 26 def objectclass_filter Net::LDAP::Filter.eq("objectclass", "person") end
org_filter(org)
click to toggle source
# File lib/ucb_groups/membership_filter.rb, line 46 def org_filter(org) Net::LDAP::Filter.eq("berkeleyedudeptunithierarchystring", "*#{org}*") end
orgs_filter()
click to toggle source
# File lib/ucb_groups/membership_filter.rb, line 41 def orgs_filter @orgs.map { |org| org_filter(org) } .reduce { |accum, filter| accum.send("|", filter) } end