Duda con Acts at Authenticated


#1

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??


#2

On 14/01/07, Alfredo G. removed_email_address@domain.invalid 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


#3

On Jan 14, 2007, at 6:17 PM, Alfredo G. 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


#4

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


#5

On 14/01/07, Manuel González Noriega
removed_email_address@domain.invalid > 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