Autentificación de usuarios con Acts as Authenticated

Hola, estoy probando el plugin :
[Acts as Authenticated]Cuando lo tengo medio comprendido y medio
instalado
en un pequeña aplicación que tenía sin gestión de usuarios me da por
copiar
esta URL:

http://localhost:3000/account/edicion_usuarios

Esta es una dirección que no puedo ver si no me logeo como ADMIN de mi
App.
Pero resulta que la he copiado y la he pegado en una ventana nueva y me
deja acceder sin redirigirme a la pantalla del login. :slight_smile:

¿Cómo puedo evitar esto? CREO QUE ES UN FALLO GORDO ¿NO?

No se si me he explicado

gracias de antemano por vuestra ayuda

Un saludo

La autenticación es a nivel de todas las ventanas/tabs que tengas
abiertas en el mismo browser. Es decir, que si no haces logout en la
primera ventana, seguiras logueado en cualquier ventana/tab.

O sea, que es el comportamiento esperado.

El 18/10/07, Andrés gutiérrez [email protected]
escribió:> Hola, estoy probando el plugin :

On 18/10/2007, Andrés gutiérrez [email protected] wrote:

Esta es una dirección que no puedo ver si no me logeo como ADMIN de mi App.
Pero resulta que la he copiado y la he pegado en una ventana nueva y me
deja acceder sin redirigirme a la pantalla del login. :slight_smile:

¿Cómo puedo evitar esto? CREO QUE ES UN FALLO GORDO ¿NO?

También puede ser que estés LOGADO CON COOKIE porque hayas puesto el
before_filter :login_from_cookie

Eso sin descartar que no tengas puesto correctamente el
:login_required. Show code.


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.

Hola Andrés,

A estas alturas seguro que hay unos cuantos miles de programadores
usando acts_as_authenticated así que es poco probable que tenga un fallo
tan gordo como el que comentas :wink:

  • Cerraste todas las ventanas/tabs de tu
    aplicación?- Tienes desactivado el remember_me?

Saludos,
Raul M.

Gracias por vuestras respuestas teneis razon en todo menos en lo mas
basico
que si lo he hecho (cerrar el navegador. Incluso reiniciar el server
[mongrel]).
investigare lo del
-Remember_me
-before_filter :login_from_cookie

A ver que pasa.

Muchas gracias

El día 18/10/07, Raul M. [email protected] escribió:

Me estoy liando un poco con esto de las cookies. He quitado
before_filter :login_from_cookie

del controller ACOUNT que es donde tengo los metodos de login, logout,
singup,…

Pero nada. Cierro las ventanas y el navegador vuelvo a meter la URL que
solo
puede ver el admin y la puedo ver
Yo ya se que no es un problema del Plugin (mejor para todos). pero aun
asi
me gustaría saber cuales son mis opciones en este tema. ¡como se tiene
que
gestionar el tema de la persistencia de la información’

NOTA1:
Lo que me ha dicho Manuel:

Eso sin descartar que no tengas puesto correctamente el
:login_required. Show code.

no lo he entendido. yo los login_required los pongo así donde quiero que
no
se entre:

class MiControladorController < ApplicationController
before_filter :login_required

Lo que ha dicho Raul:

  • Tienes desactivado el remember_me?

¿Cómo se desactiva’ Llevo dos dias con este plugin y se que esta en :
lib/AuthenticatedSystem.rb, pero no se como se configuran las opciones

NOTA2:
Las dos dudas despues de NOTA1 las tengo porque se muy poco, pero aun
asi
estoy disfrutando como un enano

Un saludo

Andrés gutiérrez
escribió:> Me estoy liando un poco con esto de las cookies. He quitado

before_filter :login_from_cookie

del controller ACOUNT que es donde tengo los metodos de login, logout,
singup,…

¿Has quitado también ese filtro del controlador al que sólo puede
acceder el admin? (Ése al que no deberías poder acceder sin logarte).
Vigila también que no lo tengas en el ApplicationController, pues lo
heredarían todos tus controladores.

Saludos,
Raul M.

Lo único que tengo en ApplicationController de este plugin es [include
AuthenticatedSystem]

y los dos único filtros que estoy aplicando en toda la App son estos 2.

def admin_required
  username, passwd = get_auth_data
  self.current_user ||= User.authenticate(username, passwd) || 

:false if
username && passwd
logged_in? && authorized? ? true : access_denied_admin
end
def login_required
username, passwd = get_auth_data
self.current_user ||= User.authenticate(username, passwd) ||
:false if
username && passwd
logged_in? ? true : access_denied
else
end

como puedes ver [admin_required] es una copia de [login_required]. Esto
es
mio. Casi seguro que es una chapuza, lo he hecho para aprovechar esto.

def authorized?
return current_user.is_admin?
end

Asi a los metodos que les pase el metodo [admin_required] comprobara si
en
la BBDD el campo [is_admin] es TRUE.
No sé. Estoy leyendo la página oficial en ingles y no me entero mucho.

un saludo

Andrés gutiérrez
escribió:> Lo único que tengo en ApplicationController de este plugin es [include

AuthenticatedSystem]

y los dos único filtros que estoy aplicando en toda la App son estos 2.(…)
como puedes ver [admin_required] es una copia de [login_required]. Esto
es mio.

Por aislar un poco el problema: ¿has comprobado si te funciona todo
correctamente sin utilizar tu admin_required? Si has personalizado el
sistema de autenticación quizá deberías usar pastie[1] para que podamos
ver cómo ha quedado y el código del controlador que te da problemas.

Saludos,
Raul M.

[1] http://pastie.caboo.se/

Esto de pastie es para que yo pege el codigo y se pueda ver de una URL?

El día 18/10/07, Raul M. [email protected] escribió:

Andrés gutiérrez
escribió:> Esto de pastie es para que yo pege el codigo y se pueda ver de una URL?

Sí, es mucho más cómodo que leerlo en el cliente de correo, además
ofrece resaltado de sintaxis.

Saludos,
Raul M.

Si, ademas te resalta la sintaxis.

SOLO UNA DUDA, PARA EL RESALTADO DE SINTAXIS TE TIENES QUE REGISTTRAR
¿DONDE?

El día 18/10/07, Raul M. [email protected] escribió:

Cuando le das Paste ya te resalta el codigo, no te tenes que registrar.

bueno, pues aqui esta mi Authenticated_system.rb
http://pastie.caboo.se/108589

lo que esta con !! es lo que he tocado, bueno, solo los
flash[:notice]=“en
castellano”

Lo que quiere decir Manuel es que muestres el código de tu aplicación
para
poder ayudarte.

saludos,
Juan P…

bueno gente, me estais ayudando muchisimo, pero ahora tengo que dejarlo.
aunque toda vuestra ayuda sera bien recibida y bien leida mañana a
primenra
hora
un saludo

El día 18/10/07, Andrés gutiérrez [email protected] escribió:

El método is_admin? donde esta definido? en el modelo User supongo. Ese
código como es?

El “metodo” is_admin, no es un metodo (que yo sepa, y creo que lo sé).
es un
campo de la tabla USERS si es lo que quieres decir y lo que hago es
sacarlo
de los valores que quedan recogidos en current_user

def current_user
@current_user ||= (session[:user] && User.find(session[:user])) ||
:false
#User.find_by_id(session[:user]))
end

def authorized?
return current_user.is_admin?
end

Un saludo

El día 18/10/07, Juan P. [email protected] escribió: