class Mooset::Endpoints::Ldap::LdapSearch

Constants

GROUP_FILTER

Attributes

endpoint[R]

Public Class Methods

new(endpoint, default_search) click to toggle source
# File lib/mooset/endpoints/ldap/ldap_search.rb, line 9
def initialize(endpoint, default_search)
  @endpoint = endpoint
  @default_search = default_search
end

Public Instance Methods

query(filter = @default_search, base: endpoint.treebase) { |r| ... } click to toggle source
# File lib/mooset/endpoints/ldap/ldap_search.rb, line 29
def query(filter = @default_search, base: endpoint.treebase)
  return to_enum(:query, filter, base: base) unless block_given?

  connection.search(base: base, filter: filter) do |object|
    if object[:objectclass] && object[:objectclass].include?("group")
      r = Group.build(endpoint, object)
    elsif object[:objectclass] && object[:objectclass].include?("user")
      r = User.build(endpoint, object)
    elsif object[:objectclass] && object[:objectclass].include?("organizationalUnit")
      r = Ou.build(endpoint, object)
    else
      raise "Unknown objectclass #{object[:objectclass]}"
    end

    yield r
  end
end

Private Instance Methods

connection() click to toggle source
# File lib/mooset/endpoints/ldap/ldap_search.rb, line 49
def connection
  @endpoint.connection
end