Estimados , Un cordial saludo,
Queria consultarles una duda que tengo con las ACL de cakephp, la cuestion especificamente esta!!. que ahora justo me encuentro configurando las ACL pero de una manera gestionable y administrativa como lo hace Croogo (permisos). pues bien la verdad es estoy configurando la automatizacion de las ACO con la funcion buildACL<http://book.cakephp.org/1.3/es/The-Manual/Tutorials-Examples/Simple-Acl-controlled-Application.html#act-as-a-requester-solicitante> , ya adapte esa funcion para cakephp 2.0, pero la duda exactamente esta, en que cuando la ejecuto, construye los ACO controllers/metodos, pero el problema es que solo construye las metodos de controlador donde estoy llamando la funcion buildACL es decir me hace el recorrido de los aco controller (escribe en databse los controladores, pero unicamente escribe los metodos de donde estoy ejecutando funcion), no construye los métodos respectivos de cada controller, la fucnion se las envio */*** * * Reconstruye el Acl basado en los controladores actuales de la aplicación.* * ** * * @return void* * */* *function buildAcl() {* *$log = array();* *$aco =& $this->Acl->Aco;* *$root = $aco->node('controllers');* *if (!$root) {* * $aco->create(array('parent_id' => null, 'model' => null, 'alias' => 'controllers'));* * $root = $aco->save();* * $root['Aco']['id'] = $aco->id;* * $log[] = 'Creado el nodo Aco para los controladores';* * } else {* * $root = $root[0];* * }* * * * App::import('Core', 'File');* * $Controllers = App::objects('Controller');* * $appIndex = array_search('AppController', $Controllers);* * if ($appIndex !== false ) {* * unset($Controllers[$appIndex]);* * }* * $baseMethods = get_class_methods('Controller');* * $baseMethods[] = 'buildAcl';* * // debug($baseMethods);* * * * // miramos en cada controlador en app/controllers* * foreach ($Controllers as $ctrlName) {* * App::import('Controller', $ctrlName);* * $ctrlclass = $ctrlName;* * $methods = get_class_methods($ctrlName);* * //buscar / crear nodo de controlador* * $controllerNode = $aco->node('controllers/'.$ctrlName);* * if (!$controllerNode) {* * $aco->create(array('parent_id' => $root['Aco']['id'], 'model' => null, 'alias' => $ctrlName));* * $controllerNode = $aco->save();* * $controllerNode['Aco']['id'] = $aco->id;* * $log[] = 'Creado el nodo Aco del controlador '.$ctrlName;* * } else {* * $controllerNode = $controllerNode[0];* * }* * * * //Limpieza de los metodos, para eliminar aquellos en el controlador* * //y en las acciones privadas* * foreach ($methods as $k => $method) {* *//es aqui donde queda indefinido los valores del $method, pues solo se trae los actions de controlador donde estoy ejecutando la tarea * * if (strpos($method, '_', 0) === 0) {* * unset($methods[$k]);* * continue;* * }* * if (in_array($method, $baseMethods)) {* * unset($methods[$k]);* * continue;* * }* * $methodNode = $aco->node('controllers/'.$ctrlName.'/'.$method);* * if (!$methodNode) {* * $aco->create(array('parent_id' => $controllerNode['Aco']['id'], 'model' => null, 'alias' => $method));* * $methodNode = $aco->save();* * $log[] = 'Creado el nodo Aco para '. $method;* * }* * }* * }* * debug($log);* *}* * * esa funcion la ejecuto en user/index por ejemplo, constuye solo los metodos de users, agradeceria me pueda ayudar o darme una forma mes adecuada de construir los ACOS de todo la aplicacion muchas gracias saludos -- Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos de Google. Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cakephp-es+unsubscr...@googlegroups.com. Para publicar una entrada en este grupo, envía un correo electrónico a cakephp-es@googlegroups.com. Visita este grupo en http://groups.google.com/group/cakephp-es. Para obtener más opciones, visita https://groups.google.com/groups/opt_out.