elixir_ldap v0.3.0 ElixirLdap

This module LDAP Client for Elixir.

Using ElixirLdap Example

ElixirLdap example

iex> handle = ElixirLdap.connect("192.168.11.101")
#PID<0.212.0>

iex> ElixirLdap.Search.search_single_level_all(handle)
{:ok,
[%ElixirLdap.Entry{attributes: [{'objectClass', ['dcObject', 'organization']},
    {'dc', ['corporation']}, {'o', ['Corporation Inc']}],
  object_name: 'dc=corporation,dc=home,dc=local'}]}

iex> ElixirLdap.Search.search_subtree(handle, [filter: :equal, field: "cn", name: "user01"])
{:ok,
[%ElixirLdap.Entry{attributes: [{'objectClass', ['person']},
    {'sn', ['Valentine']}, {'telephoneNumber', ['041 000 000']},
    {'cn', ['user01']}],
  object_name: 'cn=user01,ou=People,dc=corporation,dc=home,dc=local'}]}

connect LDAP server and search signle level and search subtree equal cn

Link to this section Summary

Link to this section Functions

Link to this function add(handle, dn, attribute)

add entry

Exsample

ElixirLdap.add(handle, "cn=user01,ou=People,dc=corporation,dc=home,dc=local", [telephoneNumber: ["545 555 0001"], objectClass: ["person"], sn: ["user"]])

close handle

Exsample

ElixirLdap.close(handle)
Link to this function connect(host, list)
Link to this function connect(host, list1, list2)

ldap connect open and simple bind

Example

ElixirLdap.connect("127.0.0.1", [port: port, ssl: ssl, timeout: timeout])
Link to this function convert_object_name(object)

convert objerct name add map entity

Example

ElixirLdap.convert_object_name(entity)

>%{
>  __struct__: ElixirLdap.Entry,
>  attributes: [
>    {'objectClass', ['dcObject', 'organization']},
>    {'dc', ['corporation']},
>    {'o', ['Corporation Inc']},
>    {'telephoneNumber', ['999 0000 0000']},
>    {'postalCode', ['820-0000']}
>  ],
>  object_name: 'dc=corporation,dc=home,dc=local',
>  object_names: [
>    %{"name" => "dc", "value" => "corporation"},
>    %{"name" => "dc", "value" => "home"},
>    %{"name" => "dc", "value" => "local"}
>  ]
>}
Link to this function convert_objects_name(arg1)

convert object name add map entity list

Example

ElixirLdap.Search.search_subtree_all(handle) |> ElixirLdap.convert_objects_name
Link to this function delete(handle, dn)

delete entry

Exsample

ElixirLdap.delete(handle, "cn=user01,ou=People,dc=corporation,dc=home,dc=local")
Link to this function modify(handle, dn, attribute)

modify entry

Exsample

ElixirLdap.modify(handle, [cn: "user01", ou: "People", dc: "corporation", dc: "home", dc: "local"], [telephoneNumber: ["545 555 333"]])
Link to this function modify_dn(handle, dn, new_rdn, delete_old_rdn, new_sup_dn)

modify dn entry

Exsample

ElixirLdap.modify_dn(handle, "cn=user01,ou=People,dc=corporation,dc=home,dc=local", "cn=user101", true, "")
Link to this function modify_password(handle, dn, password)
Link to this function modify_password(handle, dn, new_password, old_password)

open handle ldap client socket

Example

ElixirLdap.open("127.0.0.1")

parameter

open parameter config.exs

config :elixir_ldap, :settings,
  host: "127.0.0.1",
  port: 389,
  ssl: false,
  timeout: 5000,
  user_dn: "cn=Manager,dc=home,dc=local",
  password: "secret",
  base: "dc=home,dc=local"
Link to this function open(host, options)

open handle ldap client socket

Example

ElixirLdap.open("127.0.0.1", [port: port, ssl: ssl, timeout: timeout])

parameter

port : connect to port ssl : true or false timeout : connect timeout

Link to this function simple_bind(handle, user_dn, password)