2009-11-10 16 views
6

Estoy planeando establecer un permiso en la página de índice de mi evento, que solo permite que determinado usuario vea cuál se configuró cuando agregué el evento. Después de que el usuario haga clic en mi evento, el controlador de eventos primero verificará la identificación del usuario y verificará la base de datos del evento que controla el usuario para ver qué evento en su calendario. El permiso se agrega cuando el usuario crea un evento y lo comparte con otro usuario. Además, ¿cómo puedo encontrar el ID de usuario actual para compararlo con mi base de datos de eventos, que es la 1 precisa?cómo averiguar mi ID de usuario actual en otro controlador de página después de iniciar sesión?

¿Alguna sugerencia para mí para hacer esta función? necesito saber el código y el concepto de cómo obtengo el ID de usuario actual para compararlo con toda la base de datos de eventos y permitir que el usuario actual vea el evento determinado.

muchas gracias para su información.

Respuesta

18

El enfoque recomendado para cómo cerrar la sesión en los datos de usuario es a través de la propia AuthComponent:

// in any controller 
$userId = $this->Auth->user('id'); 

Ver Accessing the logged in user en la sección de autenticación de la CakePHP Book.

6

Use las sesiones para guardar y leer datos para un usuario entre páginas.

dentro de los controladores:

// store a user id in the session 
$this->Session->write('User.id', $userId); 

// read a user id from the session 
$userId = $this->Session->read('User.id'); 

Dentro Vistas:

// read a user id from the session 
$userId = $session->read('User.id'); 

Se puede utilizar cualquier tecla que desea si usted prefiere algo más "User.id". Simplemente uso esto ya que es lo que el AuthComponent se establece de manera predeterminada si está usando eso.

+1

1, por ejemplo, a fondo, pero "La principal diferencia entre el ayudante y la Sesión Componente de sesión es que el ayudante no tiene la capacidad de escribir en la sesión ". http://book.cakephp.org/view/484/Session – deizel

+1

Gracias por señalar esa diferencia, actualicé mi respuesta para reflejar eso. –

2

Lo que está buscando son ACL (listas de control de acceso). Hay un AclComponent integrado en Cake, que deberías tener en cuenta. Funciona junto con AuthComponent, que contendrá la identificación del usuario. Es un poco complicado al principio, pero vale la pena la molestia.

+0

AclComponent solo se usa bajo el capó en algunos módulos * authorization *. AuthComponent es dónde buscar el usuario * autenticado *, así como otras cosas relacionadas con autenticación de nivel superior. – spinkus

1

Además, para un enfoque simple, eche un vistazo a las configuraciones model y controller de AuthComponent::authorize. Esto le permite definir un método isAuthorized() en su controlador o modelo (a su elección) que almacenará la lógica que determina el acceso (debe devolver true si se permite el acceso y false si se deniega).

0

para ver sesiones, consultas, datos, y todo lo demás que se pasa de una página a otra en la torta de utilizar este increíble pequeño ayudante http://thechaw.com/debug_kit

Cuestiones relacionadas