Devise overwrite di alcuni attributi di user session

Mi spiego.
Uso devise_ldap per l’autenticazione.
Nel modello user ho implementato il metodo:

def name
“#{first_name} #{last_name}”
end

L’utente guest nel db ha guest guest come first_name e last_name,
quindi current_user.name mi darebbe guest guest.
Vorrei che l’utente guest dopo essersi loggato inserisse il suo nome e
cognome attraverso un form e vorrei fare in modo che da quel momento
in poi per tutta l’applicazione current_user.name avesse i dati
inseriti attraverso il form.
Ora per fare il redirect ad un form per inserire nome e cognome ho
fatto l’override del metodo after_sign_in_path_for:

def after_sign_in_path_for(resource)
if current_user.uid == “ospite”
login_guest_user_path(resource)
else
super
end
end

L’utente guest inserisce nel form presentato dalla pagina
login_guest_user_path i propri dati ma a questo punto non so come
modificare la sessione del current_user in modo che il suo metodo name
mi possa restituire il nome e cognome inseriti.

2012/9/22 Mauro [email protected]:

Vorrei che l’utente guest dopo essersi loggato inserisse il suo nome e
super
end
end

L’utente guest inserisce nel form presentato dalla pagina
login_guest_user_path i propri dati ma a questo punto non so come
modificare la sessione del current_user in modo che il suo metodo name
mi possa restituire il nome e cognome inseriti.

Nessuna idea?

Ogni guest ha un record personale?

Maurizio

My profile https://plus.google.com/100973969013103507046/about

2012/9/22 Mauro [email protected]

current_user ritorna l’utente loggato (e di norma usa la memoization).
Quindi, dopo il login di guest, dovresti usare un nuovo utente ad-hoc,
oppure:

  1. imposti il nuovo nome in sessione
  2. fai override di current_user per far tornare il nome dalla sessione

IMHO, questa cosa suona di porcata olimpica, per si pu fare

Il giorno domenica 23 settembre 2012, Mauro ha scritto:

2012/9/23 Andrea P. [email protected]:

current_user ritorna l’utente loggato (e di norma usa la memoization).
Quindi, dopo il login di guest, dovresti usare un nuovo utente ad-hoc,
oppure:

  1. imposti il nuovo nome in sessione

E’ quello che voglio fare.
Siccome mi appoggio ad una applicazione che chiede current_user.name
non posso far altro che trovare un modo per poter cambiare cio’ che
current_user.name mi restituisce.
Ci sara’ pure una sessione di current_user dove poter intervenire.

2012/9/22 maurizio de magnis [email protected]:

Ogni guest ha un record personale?

No ha solo un record nel db con first_name e last_name “guest” guest".
current_user.name percio’ mi restituisce guest guest.
Ecco perche’ dopo che il guest si e’ loggato con successo, chiedo,
tramite form, di inserire nome e cognome e vorrei far si che per tutta
l’applicazione current_user.name mi restituisca il nome e cognome
inseriti nel form.
Immagino di dover intervenire nella session di user ma non riesco a
capire come.