Esempi ldap

Salve.
Sto perdendo un sacco di tempo per fare un elementare programma di
inserimento dati in un database ldap.
Purtroppo in rete non ci sono molti esempi cosi’ mi fermo in piccoli
problemi.
Es:

def initialize
@base = “ou=people,dc=xxx,dc=xxx,dc=it”
@admin = “cn=admin,dc=xxx,dc=xxx,dc=it”
@passwd = “xxx”
@conn = LDAP::Conn.new(“localhost”)
@conn.set_option( LDAP::LDAP_OPT_PROTOCOL_VERSION, 3 )
@domain = “@xxx.xxx.it
end

def inserisci
newentry = {
“objectClass” =>
[“top”,“person”,“organizationalPerson”,“inetOrgPerson”,“posixAccount”],
“dn” => “uid=#{uid},#@base”,
“sn” => “#{cognome}”,
“cn” => “#{nome} #{cognome}”,
“mail” => “#{uid}#@domain”,
“homeDirectory” => “/var/vmail/#{uid}”,
“uidNumber” => “1004”,
“gidNumber” => “1004”,
“uid” => “#{uid}”,
“userPassword” => “#{passwd}”,
“employessNumber” => “#{codice}”
}
@conn.add(@base, newentry)
end

Mi dice GesLDAP.rb:1:in `initialize’: wrong argument type String
(expected Array) (TypeError)

ma dov’e’ il problema?

On 3/6/07, Mauro S. [email protected] wrote:

Mi dice GesLDAP.rb:1:in `initialize’: wrong argument type String
(expected Array) (TypeError)

ma dov’e’ il problema?

facciamo step by step. puoi mandare le righe da cui istanzi GesLDAP e la
firma del costruttore di quella classe?

Il giorno mar, 06/03/2007 alle 11.04 +0100, chiaro scuro ha scritto:

On 3/6/07, Mauro S. [email protected] wrote:

Mi dice GesLDAP.rb:1:in `initialize’: wrong argument type String
(expected Array) (TypeError)

ma dov’e’ il problema?

facciamo step by step. puoi mandare le righe da cui istanzi GesLDAP e la
firma del costruttore di quella classe?

e’ tutto in un file

require ‘ldap’

class Proxy1LDAP

def initialize
@base = “ou=people,dc=xxx,dc=xxx,dc=it”
@admin = “cn=admin,dc=xxx,dc=xxx,dc=it”
@passwd = “xxx”
@conn = LDAP::Conn.new(“localhost”)
@conn.set_option( LDAP::LDAP_OPT_PROTOCOL_VERSION, 3 )
@domain = “@xxx.xxx.it
end

def connetti
@conn.bind(@admin, @passwd)
rescue LDAP::ResultError
errcode = @conn.err
$stderr.puts(@conn.err2string(errcode))
end

def inserisci(uid,nome,cognome,codice,passwd)

newentry = {
“objectClass” =>
[“top”,“person”,“organizationalPerson”,“inetOrgPerson”,“posixAccount”],
“dn” => “uid=#{uid},#@base”,
“sn” => “#{cognome}”,
“cn” => “#{nome} #{cognome}”,
“mail” => “#{uid}#@domain”,
“homeDirectory” => “/var/vmail/#{uid}”,
“uidNumber” => “1004”,
“gidNumber” => “1004”,
“uid” => “#{uid}”,
“userPassword” => “#{passwd}”,
“employessNumber” => “#{codice}”
}
@conn.add(@base, newentry)
end
end

obj=Proxy1LDAP.new
obj.connetti
obj.inserisci(“nome.cognome”,“nome”,“cognome”,“11111”,“prova”)

questo e’ tutto, molto elementare, d’altronde sto iniziando.

Il giorno mar, 06/03/2007 alle 11.19 +0100, chiaro scuro ha scritto:

scusami, ma non riesco a capire su che riga ti da errore. e se lo da sulla
tua classe o su una classe del framework che usi (GesLDAP). nel secondo
caso, potresti fornirci il codice del metodo initialize della classe che ti
da problemi?

Il codice e’ tutto li.
L’errore me lo da quando chiamo il metodo @conn.add(@base, newentry).

On 3/6/07, Mauro S. [email protected] wrote:

L’errore me lo da quando chiamo il metodo @conn.add(@base, newentry).
è necessario capire cosa si aspetta il framework che usi. probabilmente
istanzia degli oggetti GesLDAP in base ai parametri che passi, e uno dei
tuoi parametri probabilmente dovrebbe essere un array. ti consiglio di
cercarti tra le librerie di ruby che hai installato quella di cui fai il
require e poi di andare a vederti sia il metodo ‘add’ della connection
che
il metodo initialize di GesLDAP. questo può fornirci indizi sulla
soluzione.

On 3/6/07, Mauro S. [email protected] wrote:

GesLDAP e’ una classe fatta da me per gestire LDAP.
L’unica documentazione che ho trovato sul metodo conn.add e’ su
RDoc Documentation

ma non ho capito dove sbaglio nella sua invocazione.

la firma di add sembra ok. è possibile però che tu stia passando a una delle
chiavi della hash una stringa, quando lui si aspetta un array per quella
chiave. non mi intendo di ldap però e non ti so dire nulla di preciso.

non vedo invece GesLDAP usata nel tuo codice, come fa a darti errore su
quella?


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


– Kia

therubymine.com | be a miner

Il giorno mar, 06/03/2007 alle 11.32 +0100, chiaro scuro ha scritto:

Il codice e’ tutto li.
L’errore me lo da quando chiamo il metodo @conn.add(@base, newentry).

è necessario capire cosa si aspetta il framework che usi. probabilmente
istanzia degli oggetti GesLDAP in base ai parametri che passi, e uno dei
tuoi parametri probabilmente dovrebbe essere un array. ti consiglio di
cercarti tra le librerie di ruby che hai installato quella di cui fai il
require e poi di andare a vederti sia il metodo ‘add’ della connection che
il metodo initialize di GesLDAP. questo può fornirci indizi sulla soluzione.

GesLDAP e’ una classe fatta da me per gestire LDAP.
L’unica documentazione che ho trovato sul metodo conn.add e’ su
http://ruby-ldap.sourceforge.net/rdoc/

ma non ho capito dove sbaglio nella sua invocazione.

scusami, ma non riesco a capire su che riga ti da errore. e se lo da
sulla
tua classe o su una classe del framework che usi (GesLDAP). nel secondo
caso, potresti fornirci il codice del metodo initialize della classe che
ti
da problemi?

On 3/6/07, Mauro S. [email protected] wrote:

questo e’ tutto, molto elementare, d’altronde sto iniziando.


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


– Kia

therubymine.com | be a miner

non vedo invece GesLDAP usata nel tuo codice, come fa a darti errore su
quella?

Avevo rinominato il file, si chiama Proxy1LDAP.