[Rails] DB, LDAP e...qualche consiglio

Ciao a tutti,
mi hanno chiesto di sviluppare una piccola interfaccina per immettere
dei valori e subito ho pensato di farla in Rails. Detto fatto però sta
cosa deve prevedere un minimo di autenticazione…ok nulla di più
semplice. E invece…bisogna usarte un catalogo LDAP (la solita
ActiveDir) per evitare che gli utenti si debbano ricordare password
nuove e bla bla bla. Pensa e ripensa sono arrivato a sta conclusione.
Uso ActiveLDAP per recuperare sAMAccountName e Password per autenticare
e un db dove andrò a salvare degli attributi estesi per ogni singolo
utente (non mi va di modificare lo schema di AD). Quindi un account
abilitato all’applicazione oltre a possedere un account valido su LDAP
ha anche una entri nel db, in una tabella users, dove vi son memorizzati
altri parametri leativi all’utente. Il mio dubbio…mi conviene creare 2
models che incapsulano i due oggetti User su LDAP e su DB, quindi
gestire l’associazione con un helper oppure creare un model “fittizio”
che ha all’interno le classi private che incapsulano i 2 oggetti
suddetti? Diciamo che è più una “para” di stile che di funzionalità…

Davide

ciao
io non direi che è una “para” di stile, è la differenza tra un modello
estendibile e facilmente modificabile e uno no,

il problema è molto interessante e importante in ambiente enterprise,
nel mio caso specifico oltre all’LDAP ci sono altri sistemi, per esempio
as400,
è molto importante quindi avere un modello con interfaccia minima esposta
e
“nascondere” i dettagli
Ciao Paolo

Davide B. wrote:

Ciao a tutti,
mi hanno chiesto di sviluppare una piccola interfaccina per immettere
dei valori e subito ho pensato di farla in Rails. Detto fatto per� sta
cosa deve prevedere un minimo di autenticazione…ok nulla di pi�
semplice. E invece…bisogna usarte un catalogo LDAP (la solita
ActiveDir) per evitare che gli utenti si debbano ricordare password
nuove e bla bla bla. Pensa e ripensa sono arrivato a sta conclusione.
Uso ActiveLDAP per recuperare sAMAccountName e Password per autenticare
e un db dove andr� a salvare degli attributi estesi per ogni singolo
utente (non mi va di modificare lo schema di AD). Quindi un account
abilitato all’applicazione oltre a possedere un account valido su LDAP
ha anche una entri nel db, in una tabella users, dove vi son memorizzati
altri parametri leativi all’utente. Il mio dubbio…mi conviene creare 2
models che incapsulano i due oggetti User su LDAP e su DB, quindi
gestire l’associazione con un helper oppure creare un model “fittizio”
che ha all’interno le classi private che incapsulano i 2 oggetti
suddetti? Diciamo che � pi� una “para” di stile che di funzionalit�…

Davide

Perdono se non mi spiego bene in italiano, ma non si puo’ recuperare il
password dall’ActiveDirectory. Per fare il “login” bisogna sempre
collegare all’AD. Mi sembra che per te sarebbe piu’ utile avere un
sistema diverso dall’AD, ma che puo’ interoperate con AD, e sempre
funziona facilmente con Rails.

Infatti me ne sono accorto. Quindi ho pensato di risolvere facendo prima
una
ricerca nel db locale se l’utente esiste e poi un bind su AD per
convalidare
l’autentica. Ho ancora qualche dubbio su come strutturare il tutto
(helper o
classi model). Cosa intendi per sistema diverso che può interoperare con
AD?

Davide

Francis C. Scrive:

Salve a tutti,
ho un problema che non riesco a risolvere:
la mia applicazione rails ha una classe che si chiama Test. Quando
lancio
$ ruby test/unit/test_test.rb
ottengo un errore
‘Test is not a class (Type error)’
Suppongo che questo sia dovuto al fatto che la parola test ha,
ovviamente, un altro significato in rails e non dovrebbe essere il nome
di una classe. Poiché nella mia applicazione quell’oggetto dovrebbe
chiamarsi proprio test, ho provato ad usare un namespace. Il mio
app/models/test.rb è diventato:

module Iknow
end
class Iknow::Test < ActiveRecord::Base
end

A questo punto il test ha successo, ma quando vado a visualizzare la
pagina
http://localhost:3000/tests
sul browser ottengo l’errore:
NameError in TestsController#index
uninitialized constant Test

Come posso risolvere?
So bene che basterebbe cambiare il nome della classe da “Test” a
qualcos’altro, ma perderei l’occasione per imparare qualcosa :slight_smile:
Grazie a chi vorrà darmi un consiglio
Marco