Me gustaría saber cómo tratar con UN solo proceso de autenticación y "usuarios" en múltiples tablas. Tengo una tabla de 4 usuarios: usuarios, administradores, artistas, teamadmins que tienen campos específicos, pero me gustaría que todos estos usuarios puedan conectarse a través de un solo formulario en la página principal, y luego ser redirigidos a sus paneles específicos.Cakephp Auth con múltiples tablas de "Usuarios"
Creo que las redirecciones no deberían ser un problema, y algunas rutas agregadas deberían funcionar, pero realmente no sé dónde buscar/comenzar a hacer esto posible.
Cheers,
Nicolas.
EDITAR: aquí está la solución final (gracias a deizel)
App::import('Component', 'Auth');
class SiteAuthComponent extends AuthComponent {
function identify($user = null, $conditions = null) {
$models = array('User', 'Admin', 'Artist');
foreach ($models as $model) {
$this->userModel = $model; // switch model
$this->params["data"][$model] = $this->params["data"]["User"]; // switch model in params/data too
$result = parent::identify($this->params["data"][$model], $conditions); // let cake do its thing
if ($result) {
return $result; // login success
}
}
return null; // login failure
}
}
por qué no creó una tabla única para los usuarios. Podría haber definido fácilmente una columna separada en la tabla para 'tipo' de usuario. De esta manera no necesitará tener 4 modelos y controladores diferentes para r esos usuarios? –
@Gaurav: Hola.No lo hice antes que nada porque hice el análisis ANTES de elegir el marco, y en segundo lugar porque existen relaciones entre artistas y teamartistas, por lo que en una vista de análisis necesita definir 2 tablas. La pregunta aquí no es acerca de cambiar el esquema (ya lo he pensado, con columnas nulas), sino de intentar encontrar una solución PHP para mi esquema. Aclamaciones. – Nicolas
Estoy tratando de lograr una funcionalidad muy similar, donde cada tipo de usuario tiene un tablero diferente. Me preguntaba dónde pusiste ese código para extender el componente Auth. Y también, ¿cómo lograste la redirección? Establecer la variable de redirección en cada controlador? Gracias – AlexBrand