Se puede dar acceso a cada controlador mediante este plugin.
http://www.alaxos.ch/blaxos/pages/view/plugin_acl
y se consulta el identificador de cada usuario por medio de la
variable ($this->Auth->user('id') o hacie ndo
var_dump($this->Auth->user) se puede ver el contenido de esta variable.
una vez obtenido el id de usuario se puede realizar la busqueda en el
controlador de users o importando el modelo si el metodo usado no se
encuentra en dicho controlador.
El 2 de febrero de 2012 09:26, Francisco Javier Peña Caballero
<[email protected] <mailto:[email protected]>>
escribió:
Hola otra vez chicos, he encontrao una solución a ver qué os parece:
Buscando por google, he dado con un tema sobre como el usuario
logueado puede editar sus datos, es decir como una función
actualizar perfil:
function update() {
// This sets the logged in user as the user to update
$this->User->id = $this->Auth->user('id');
// Prepopulate form with logged in user details
if (empty($this->data)) {
$this->data = $this->User->read();
}
// Save user
else {
if ($this->User->save($this->data)) {
$this->Session->setFlash(__('Actualización completada.',
'default', array('class'=>'success')));
$this->redirect(array('action'=>'view', $this->Auth->user('id')));
}
// There was an error
else {
$this->Session->setFlash(__('Errores mientras se actualiza el
usuario:', 'default', array('class'=>'error')));
}
}
}
Así que he tomado la redirección:
(array('action'=>'view', $this->Auth->user('id')));
Y en app_controller coloco como redirección tras logueo:
$this->Auth->loginRedirect = array('controller' => 'users',
'action' => 'perfil', $this->Auth->user('id'));
Ahora lo que quiero es configurar la ruta /users/view/id del
usuario, para que no se muestre así: /users/view/3, y se muestre
como: /perfil-usuario
Router::connect ('/perfil-usuario', array('controller'=>'users',
'action'=>'view', 3));
Lo que me falta en el tercer parámetro en vez de colocar la id del
usuario en cuestión, ponerlo genérico, para que cualquier id de
usuario, ya sea el id=4 o id=50, se muestre como /perfil-usuario,
no sé si me explico bien. Saludos y a ver qué os parece la propuesta.
El 1 de febrero de 2012 17:58, Francisco Javier Peña Caballero
<[email protected] <mailto:[email protected]>>
escribió:
Bueno tras varios días leyendo el tutorial, y tirando de
varias páginas buscando un ejemplo parecido como un loco y
haciendo pruebas, casi que arrojo la toalla. No sé como
mostrar en la acción perfil ( ) los datos del usuario
logueado. Es decir quiero lo que me sale en la vista
users/view/(id del usuario), todos los datos relacionados con
el mismo. Pero no termino de conseguirlo. Un saludo y gracias
de nuevo.
El 30 de enero de 2012 12:19, Pau Dominguez
<[email protected] <mailto:[email protected]>> escribió:
Hola Francisco.
Yo de ti haría el tutorial que hay en
http://book.cakephp.org/2.0/es/tutorials-and-examples/blog/blog.html
Entenderás como funciona cakephp y podrás entender porque
no te sale nada. Es mejor perder un poco de tiempo al
principio, ya que te ahorrará mucho después.
Suerte.
Pau.
On 30/01/2012 11:08, Francisco Javier Peña Caballero wrote:
Se me olvidaba, las relaciones:
tabla Comunidades tiene un campo user_id y presidente_id
(es decir cada comunidad tiene un administrador y un
presidente)
tabla Pedidos tiene: user_id, tipo_id y estado_id (cada
pedido tiene un tipo de pedido, un estado y pertenece a
un usuario)
El 30 de enero de 2012 11:02, Francisco Javier Peña
Caballero <[email protected]
<mailto:[email protected]>> escribió:
Buenos días, he agregado con var $uses = array(' ');
todos los modelos que voy a usar:
var $uses =
array('User','Comunidade','Presidente','Pedido','Estado','Tipo');
Te explico, cuando un usuario se loguee, le saldrá
sus datos personales, los de la tabla users (nombre,
apellidos, dni, email, etc), que se muestran
perfectamente en la vista perfil.ctp vía:
<?php echo $this->Session->read('Auth.User.nombre');?>
<?php echo $this->Session->read('Auth.User.apellidos');?>
Etc
Ahora quiero que se muestre las comunidades que el
usuario administra, así como el presidente de cada
comunidad. Y por último que se muestren sus pedidos,
así como el tipo de pedido y el estado del mismo, que
pertenecen por supuesto a otra tabla (y otro modelo).
Pues agregando en la vista perfil.ctp:
<?php echo
$this->Session->read('Auth.Comunidade.nombre');?>
<?php echo
$this->Session->read('Auth.Presidente.nombre');?>
<?php echo $this->Session->read('Auth.Tipo.tipo');?>
<?php echo $this->Session->read('Auth.Pedido.fecha');?>
<?php echo $this->Session->read('Auth.Estado.estado');?>
No me sale nada. No sé si no está bien cargados los
modelos o no sé. Y como sería el foreach para que
muestre todas las comunidades que el usuario
administra por un lado, y todos los pedidos que ha
realizado por otro?. Un saludo
El 26 de enero de 2012 14:24, Daniel Gómez
<[email protected]
<mailto:[email protected]>> escribió:
Ok como ya por lo menos te sale el usuario en tu
vista perfil.ctp
<?php echo $this->Session->read('User.username');
Ahora digamos que tiene una tabla pedidos. Pero
no se que campos tenga
pedidos. Digamos que tiene estos campos:
id
nombre
producto
created
modified
en el controlador de usersController coloca esto:
class UsersController extends AppController {
var $name = 'Users';
var $uses = array('User', 'Pedido');
function login() {
$user = $this->User->find('first',
array('conditions' =>
array('User.username' =>
$this->data['User']['username']))); // esta
era la q estaba para q muestre dato como el nombre
$pedido = $this->Pedido->find('first',
array('conditions' =>
array('Pedido.nombre' =>
$this->data['Pedido']['nombre'])));
}
}
AHora en tu vista perfil.ctp agrega esto:
<?php echo $this->Session->read('Pedido.nombre'); ?>
Listo hay te mostrara los nombres de los pedidos
que halla en la B.D
También si quiere mostrar todos los pedidos
agreguele un foreach y
listo
--
Has recibido este mensaje porque estás suscrito
al grupo "CakePHP-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un
correo electrónico a [email protected]
<mailto:[email protected]>.
Para anular tu suscripción a este grupo, envía un
correo electrónico a
[email protected]
<mailto:cakephp-es%[email protected]>
Para tener acceso a más opciones, visita el grupo
en http://groups.google.com/group/cakephp-es?hl=es.
--
Francisco Javier Peña Caballero
Tlfno: 652966610
--
Francisco Javier Peña Caballero
Tlfno: 652966610
--
Has recibido este mensaje porque estás suscrito al grupo
"CakePHP-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo
electrónico a [email protected]
<mailto:[email protected]>.
Para anular tu suscripción a este grupo, envía un correo
electrónico a [email protected]
<mailto:[email protected]>
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/cakephp-es?hl=es.
--
Has recibido este mensaje porque estás suscrito al grupo
"CakePHP-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo
electrónico a [email protected]
<mailto:[email protected]>.
Para anular tu suscripción a este grupo, envía un correo
electrónico a [email protected]
<mailto:cakephp-es%[email protected]>
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/cakephp-es?hl=es.
--
Francisco Javier Peña Caballero
Tlfno: 652966610
--
Francisco Javier Peña Caballero
Tlfno: 652966610
--
Has recibido este mensaje porque estás suscrito al grupo
"CakePHP-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo
electrónico a [email protected]
<mailto:[email protected]>.
Para anular tu suscripción a este grupo, envía un correo
electrónico a [email protected]
<mailto:cakephp-es%[email protected]>
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/cakephp-es?hl=es.
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es"
de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a
[email protected]
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/cakephp-es?hl=es.