Salve.
Forse ho l’occasione di provare ad usare i singleton ma vorrei sapere se
la
procedura e’ corretta.
Come detto in un’altra mail ho una classe per gestire le connessioni con
ldap.
Tale classe ha, tra gli altri, i seguenti metodi:
def initialize(server, protocol_version)
@base = “ou=prove,dc=miodominio,dc=it”
@admin = “cn=admin,dc=miodominio,dc=it”
@passwd = “xxx”
@conn = LDAP::Conn.new(server)
@conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, protocol_version)
end
def connetti
@conn.bind(@admin, @passwd)
end
def inserisci(account)
crypt_passwd = “#{account[“password”]}”.crypt(‘aa’)
newentry = {
“objectClass” =>
[“top”,“person”,“organizationalPerson”,“inetOrgPerson”,“posixAccount”],
“sn” => ["#{account[“cognome”]}"],
“cn” => ["#{account[“nome”]} #{account[“cognome”]}"],
“mail” => ["#{account[“uid”]}#@dominio"],
“uid” => ["#{account[“uid”]}"],
“userPassword” => ["{crypt}#{crypt_passwd}"],
}
@conn.add(“uid=#{account[‘uid’]},#@base”, newentry)
sendMailOnInsert(newentry[“mail”], newentry[“cn”],
newentry[“employeeNumber”])
end
il metodo sendMailOnInsert deve partire solo se e’ stato accertato
l’inserimento dell’account percio’ ho pensato:
def self.inserito?
count = 0
@conn.search(@base, LDAP::LDAP_SCOPE_SUBTREE, “uid=#{uid}”,[‘uid’]) do
|x|
count += 1
end
if count == 1
return true
else
return false
end
end
Sto procedendo correttamente?