Hola a todos, Estoy intentando cargar los componentes Acl y Auth desde un modelo pero no consigo hacerlo. Quisiera poder crear una función que me permita comprobar los permisos de un usuario para poder mostrar o no unas partes de la vista. Hasta ahora lo cargaba desde el controlador de la siguiente manera:
$this->set('permiso_editar', $this->Acl->check(array('model' => 'Grupo', 'foreign_key' => $this->Auth->user('grupo_id')), 'Articulos/edit')); funcionando perfectamente. Ahora quisiera poder cambiar eso por: $this->set('permiso_editar', $this->Articulo->permiso('Articulos/edit')); Para ello, he creado la función en el modelo de la siguiente manera, tras investigar por Google y probar varias opciones: class Articulo extends AppModel { var $name = 'Articulo'; var $validate = array ( 'title' => array ( 'rule' => 'notEmpty'), 'body' => array ( 'rule' => 'notEmpty')); public $actAs = array('Acl' => 'requester'); public function permiso($accion) { App::import('Component','Acl'); $acl = new AclComponent(); $acl->startup($controller); App::import('Component','Auth'); $auth = new AuthComponent(); $auth->startup($controller); return $this->Acl->check(array('model' => 'Grupo', 'foreign_key' => $this->Auth->user('grupo_id')), $accion); } } Cuando actualizo la vista, me aparece el siguiente mensaje de error: *Notice* (8): Trying to get property of non-object [*CORE/cake/libs/controller/components/auth.php*, line *311*] *Notice* (8): Trying to get property of non-object [*CORE/cake/libs/controller/components/auth.php*, line *312*] *Notice* (8): Trying to get property of non-object [*CORE/cake/libs/controller/components/auth.php*, line *318*] *Warning* (2): array_flip() expects parameter 1 to be array, null given [*CORE/cake/libs/controller/components/auth.php*, line *318*] *Notice* (8): Trying to get property of non-object [*CORE/cake/libs/controller/components/auth.php*, line *319*] *Notice* (8): Trying to get property of non-object [*CORE/cake/libs/controller/components/auth.php*, line *321*] *Notice* (8): Trying to get property of non-object [*CORE/cake/libs/controller/components/auth.php*, line *333*] *Notice* (8): Undefined property: AuthComponent::$Session [*CORE/cake/libs/controller/components/auth.php*, line *723*] Fatal error: Call to a member function check() on a non-object in /var/www/xxxxxxx/cake/libs/controller/components/auth.php on line 723 ¿Alguna idea o consejo para conseguirlo o mejor lo dejo en el controlador y listos? Me interesaría poder pasarlo al modelo para, después de testearlo con calma, pasarlo al app_model y que pudiera usarlo en toda la aplicación. -- Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos de Google. Para ver este debate en la Web, visita https://groups.google.com/d/msg/cakephp-es/-/DH8T1vTRnZEJ. Para publicar una entrada en este grupo, envía un correo electrónico a cakephp-es@googlegroups.com. Para anular tu suscripción a este grupo, envía un correo electrónico a cakephp-es+unsubscr...@googlegroups.com Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-es?hl=es.