Forum: Rails-ES duda con Acts at Authenticated

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
51bb5688c8c2c1b68d03c56da8e0b696?d=identicon&s=25 Alfredo Gama (alfredogz)
on 2007-01-14 18:17
Holas,

tengo esta parte de codigo y no se precisamente lo que guarda la
variable

self.current_user  en:

self.current_user = User.authenticate(params[:login], params[:password])


cuando la imprimo me sale un #, otra duda... si la variable
self.current_user me guarda el usuario actual entonces como podria
acceder a esta variable desde otro controlador??
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2007-01-19 16:29
(Received via mailing list)
On 14/01/07, Alfredo Gama <ruby-forum-incoming@andreas-s.net> wrote:
> Holas,
>
> tengo esta parte de codigo y no se precisamente lo que guarda la
> variable
>
> self.current_user  en:
>
> self.current_user = User.authenticate(params[:login], params[:password])
>

Basta con que mires el método authenticate del modelo User

def self.authenticate(login, password)
    u = find_by_login_and_status(login, "2") # need to get the salt
    u && u.authenticated?(password) ? u : nil
  end

Por tanto, tendrás nil o el usuario correspondiente


--
Manuel
http://linkja.com * un agregador de tendencias
http://simplelogica.net
http://simplelogica.net/logicola
7223c62b7310e164eb79c740188abbda?d=identicon&s=25 Xavier Noria (Guest)
on 2007-01-19 16:30
(Received via mailing list)
On Jan 14, 2007, at 6:17 PM, Alfredo Gama wrote:

>
> cuando la imprimo me sale un #, otra duda... si la variable
> self.current_user me guarda el usuario actual entonces como podria
> acceder a esta variable desde otro controlador??

Si User.authenticate devolvio un usuario dadas esas credenciales en
efecto current_user= (que es un metodo de hecho) almacena dicho
usuario en aquella linea.

La autenticacion suele configurarse con filtros en
ApplicationController:

   class ApplicationController < ActionController::Base
     include AuthenticatedSystem
     before_filter :login_from_cookie
     before_filter :login_required
     # ...
   end

Una vez se consigue hacer login, acts_as_authenticated se encarga de
autenticar automaticamente (via esos filtros) en las siguientes
peticiones desde la sesion o bien desde la cookie auth_token. Si lo
consigue setea current_user en el controlador instanciado para servir
la peticion en curso, de modo que current_user "se ve" desde todos
los controladores, por asi decir.

-- fxn
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2007-01-19 16:31
(Received via mailing list)
> cuando la imprimo me sale un #, otra duda...
te sale # porque no estará definido el método para pintarla como cadena

como norma general, cuando quieras saber el contenido de una variable
puedes usar variable.inspect o variable.to_yaml (especialmente útil para
estructuras. Desde la consola puedes usar la forma abreviada "y
variable" que además pinta cada línea con su salto correspondiente y
queda más clarito).

si ninguna de estas funciona, te queda la opción de hacer un
variable.class y o bien mirarte la documentación o bien hacerte un "y
variable.class.methods.sort" y ver qué métodos tiene, a ver si alguno de
los que hay parece que te pueda dar el valor que buscas

saludos,

javier ramirez
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2007-01-19 16:31
(Received via mailing list)
On 14/01/07, Manuel González Noriega
<manuel.gonzalez.noriega@gmail.com> > Basta con que mires el método
authenticate del modelo User
>
> def self.authenticate(login, password)
>     u = find_by_login_and_status(login, "2") # need to get the salt
>     u && u.authenticated?(password) ? u : nil
>   end
>
> Por tanto, tendrás nil o el usuario correspondiente
>

Como verás este método está un poco modificado por mí (la parte de
status), pero el retorno es el mismo

--
Manuel
http://linkja.com * un agregador de tendencias
http://simplelogica.net
http://simplelogica.net/logicola
This topic is locked and can not be replied to.