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
Functions
add entry
close handle
ldap connect open and simple bind
convert objerct name add map entity
convert object name add map entity list
delete entry
modify entry
modify dn entry
open handle ldap client socket
open handle ldap client socket
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"]])
Link to this function
close(handle)
close handle
Exsample
ElixirLdap.close(handle)
Link to this function
connect()
Link to this function
connect(host)
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)
Link to this function
open()
Link to this function
open(host)
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)