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.

Responder a