Disabilitare user_engine

Dopo un po’ di tempo, è venuto il mio momento di fare la domanda
cretina.
Doppiamente cretina in quanto so di avere letto la risposta (forse
anche qui). Solo che non la ricordo.

Quale può essere il metodo migliore per disabilitare i vari user_engine
quando faccio testing?

Trovo davvero sporco inserire roba nella session per simulare il login,
specie adesso che con gli integration tests posso fare la cosa in modo
più pulito. Quindi avrei bisogno che il controller quando lo testo nei
functional “si comportasse come se ci fosse sempre stato il login di un
utente con sufficienti permessi”. Ovvero che non controllasse
l’autenticazione.
I metodi che mi vengono in mente sono tutti sporchini.

Io nella funziona setup uso @request.session per simulare un login e
non sento così sporco!

— Rob C. [email protected] ha scritto:

Io nella funziona setup uso @request.session per
simulare un login e
non sento così sporco!

+1 session[:authenticated] non è una brutta soluzione


icq: #69488917
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info

Chiacchiera con i tuoi amici in tempo reale!
http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com

On Mon, 26 Jun 2006 22:19:21 +0200, Enrico F. wrote:

grosso modo è quello che uso. ma preferirei semplicemente
disabilitare… comunque ho capito come fare.

Già che ci sono lo dico invece di fare il sibillino…

in pratica nel file del test riapro la classe testata e ci sparo dentro

skip_before_filter :authorize_action

On Sun, 25 Jun 2006 13:10:10 -0700 (PDT), gabriele renzi wrote:

+1 session[:authenticated] non è una brutta soluzione

grosso modo è quello che uso. ma preferirei semplicemente
disabilitare… comunque ho capito come fare.
e soprattutto potrei migrare fuori da LoginEngine

Se non hai bisogno di accedere all’utente corrente nelle tue pagine
allora il metodo skip_before_filter dovrebbe funzionare bene. Io
invece non posso usarlo e devo usare il session.

On 6/28/06, gabriele renzi [email protected] wrote:

— Rob C. [email protected] ha scritto:

rob, perdona la domanda: come mai su questa mailing
list in italiano? :slight_smile:

mea culpa.

Rob era all’incontro del Social Club che abbiamo fatto a Milano e l’ho
trascinato tra di noi :slight_smile:


Chiaroscuro

Liquid Development: http://liquiddevelopment.blogspot.com/

— Rob C. [email protected] ha scritto:

rob, perdona la domanda: come mai su questa mailing
list in italiano? :slight_smile:


icq: #69488917
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info

Chiacchiera con i tuoi amici in tempo reale!
http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com

A volte anche io opto per liste italiane dove la lista in inglese
semplicemente etroppo affollata, e so che la qualita ecomunque alta sulla lista italiana (cosa abbastanza normale). La lista di Rails e un ottimo esempio - e` quasi inutile da quanto traffico
riceve.


David N. Welton

Linux, Open Source Consulting

— chiaro scuro [email protected] ha scritto:

mea culpa.

culpa? merito!


icq: #69488917
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info

Chiacchiera con i tuoi amici in tempo reale!
http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com

On Wed, 28 Jun 2006 13:52:34 +0200, Rob C. wrote:

Se non hai bisogno di accedere all’utente corrente nelle tue pagine
allora il metodo skip_before_filter dovrebbe funzionare bene. Io
invece non posso usarlo e devo usare il session.

Infatti mi sono accorto anche di questo. Se leggevo prima il tuo
messaggio mi evitavo due ore a rincorrere un functional test che
sbarellava… e tu guarda, il new sballava e l’edit no. E il codice
dentro era “analogo”.

Se non per un fatto… nel new c’era un @post.user = current_user

Come dire, se non mi ci inzucco, non sono contento. Ad ogni modo per
tutti i controller che non usano current_user, funziona bene.

On Wed, 28 Jun 2006 23:49:20 +0200, David W. wrote:

La lista di
Rails eun ottimo esempio - e quasi inutile da quanto traffico
riceve.

Quoto. Al momento ho 5000 messaggi da leggere e non ho idea di come
fare.
Tra un po’ li marco tutti letti e via. Mannaggia che rabbia… e il
bello è che fanno anche domande “puro ruby”.

Mi sto imbattendo or ora nel problema di autenticare un utente prima di
un
test funzionale…
Io sono costretto a usare la session perchè il mio controller utilizza
l’utente loggato per fare un pò di roba e non posso usare lo skip…

L’unica cosa è che non riesco a farlo… :slight_smile: nel senso che pare che @
request.session nel test non sia lo stesso oggetto session utilizzato
poi
all’interno del controller testato…
Io verifico
così:
def setup
@controller = ActivitiesController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@response.session = {}
@response.session[:user] = users(:quentin).id
end

def test_logged
assert !@controller.get_session_user.nil?
end

Questo test fallisce miseramente anche se secondo me dovrebbe
funzionare!!!
l’implementazione di get_session_user nel controller è banale:

def get_session_user
session[:user]
end

e dimostra che l’oggetto session non è condiviso… Ovviamente c’è qualcosa
di cappellato da qualche parte… Avete qualche spunto da darmi? non
riesco
a capire dove sbaglio…
Paolo

On Sat, 8 Jul 2006 16:32:36 +0200, Paolo Donà wrote:

Mi sto imbattendo or ora nel problema di autenticare un utente prima di un
test funzionale…
Io sono costretto a usare la session perchè il mio controller utilizza
l’utente loggato per fare un pò di roba e non posso usare lo skip…

Sigh… capitato anche a me. Idiotamente sono stato su mezz’ora senza
capire perchè mi fallivano dei test… ed era perchè fininva sulla
pagina di errore.

Comunque vedo che hai già risolto.

Ad ogni modo io ho un helper

def login(user)
@request.session[:user] = user
@request.session[:user].logged_in_at = Time.now
end

Sembra che il primo non sia necessario e che lo crei di suo

@response.session = {}
^^^^^^^^^

@response.session[:user] = users(:quentin).id

Uh… ma usiamo lo stesso UserEngine?
P.S. (è sabato anche per me… potrei ancora stare dormendo)

Scusate… il test è questo:

def test_logged
get :index
assert !@controller.get_session_user.nil?
end

Sorry, sono ubriaco… 1 ora per accorgermi che ho erroneamente creato
una
session nella response invece che la request :frowning:

@response.session = {}
@response.session[:user] = users(:quentin).id

Scusate, evidentemente il sabato non è fatto per lavorare…
Paolo

Io uso acts_as_authenticated
http://wiki.rubyonrails.org/rails/pages/Acts_as_authenticated

On Sun, 9 Jul 2006 01:44:30 +0200, Paolo Donà wrote:

Io uso acts_as_authenticated
http://wiki.rubyonrails.org/rails/pages/Acts_as_authenticated

Si… me lo aveva consigliato Gabriele. Ora capisco perchè il codice è
differente.
Hai usato anche LoginEngine? Se si, perchè ti sei trovato meglio con
AAA?

E poi usi UserEngine su AAA? Oppure usi acl_system?

Ti confesso che io sono sempre combattuto (come dicevo anche prima) fra
UserEngine e acl_system. Alla fine il primo mi sembra sovradimensionato
per la maggior parte degli usi, ma “funziona”, quindi non so se mi
conviene.

Tra l’altro potremmo interrogarci sul “plugin” vs. “engine”.

E per concludere fare una bella lista di plugins “che non si può vivere
senza” :slight_smile: