Class: Entitlements::Extras::LDAPGroup::Filters::MemberOfLDAPGroup
Constant Summary
collapse
- C =
::Contracts
Instance Method Summary
collapse
common, extended, included
#initialize
Instance Method Details
#filtered?(member) ⇒ Boolean
20
21
22
23
24
25
|
# File 'lib/entitlements/extras/ldap_group/filters/member_of_ldap_group.rb', line 20
def filtered?(member)
return false if filter == :all
return false unless member_of_ldap_group?(member, config.fetch("ldap_group"))
return true if filter == :none
!member_of_filter?(member)
end
|
#member_of_ldap_group?(member, group_dn) ⇒ Boolean
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/entitlements/extras/ldap_group/filters/member_of_ldap_group.rb', line 35
def member_of_ldap_group?(member, group_dn)
Entitlements.cache[:member_of_ldap_group] ||= {}
Entitlements.cache[:member_of_ldap_group][group_dn] ||= begin
member_set = Entitlements::::LDAPGroup::Rules::LDAPGroup.matches(value: group_dn)
member_set.map { |person| person.uid.downcase }
rescue Entitlements::Data::Groups::GroupNotFoundError
[]
end
Entitlements.cache[:member_of_ldap_group][group_dn].include?(member.uid.downcase)
end
|