Forum: Italian Ruby user group devise overwrite di alcuni attributi di user session.

Posted by Msan Msan (msan)
on 2012-09-22 00:16
(Received via mailing list)
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.
Posted by Msan Msan (msan)
on 2012-09-22 16:04
(Received via mailing list)
2012/9/22 Mauro <mrsanna1@gmail.com>:
> 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?
Posted by Maurizio De magnis (olistik)
on 2012-09-22 22:17
(Received via mailing list)
Ogni guest ha un record personale?

Maurizio
--
My profile <https://plus.google.com/100973969013103507046/about>




2012/9/22 Mauro <mrsanna1@gmail.com>
Posted by Msan Msan (msan)
on 2012-09-23 01:06
(Received via mailing list)
2012/9/22 maurizio de magnis <maurizio.demagnis@gmail.com>:
> 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.
Posted by Andrea Pavoni (apeacox)
on 2012-09-23 11:20
(Received via mailing list)
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:
Posted by Msan Msan (msan)
on 2012-09-23 11:58
(Received via mailing list)
2012/9/23 Andrea Pavoni <apeacox@gmail.com>:
> 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.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.