Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

[CakePHP] ACL + AUTH

Estas en el tema de [CakePHP] ACL + AUTH en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estoy intentado montar este sistema de autentificación en una aplicación hecha con CakePHP y siguiendo este manual: Código: htp://book.cakephp.org/view/641/Simple-Acl-controlled-Application (* Al enlace le falta una ...
  #1 (permalink)  
Antiguo 27/03/2009, 06:38
 
Fecha de Ingreso: noviembre-2005
Ubicación: /dev/null
Mensajes: 23
Antigüedad: 18 años, 6 meses
Puntos: 0
[CakePHP] ACL + AUTH

Estoy intentado montar este sistema de autentificación en una aplicación hecha con CakePHP y siguiendo este manual:
Código:
htp://book.cakephp.org/view/641/Simple-Acl-controlled-Application
(* Al enlace le falta una t en http porque sino no me dejaba publicar URLs el foro)

Todo va según lo indicado y explicado pero llego a un punto en el que me atasco. Cuando hay que configurar los permisos diferentes para poder indicar que grupos tiene acceso a cada controlador/acción. Este es el error con el que me encuentro en consola y no se por donde tirar:

Código:
iMac:broadcast jrd$ ./cake/console/cake acl grant $aroAlias $acoAlias [create|read|update|delete|'*']
-bash: *]: command not found
-bash: delete: command not found
Error: Wrong number of parameters: 1
Expected: 3
Please type 'cake acl help' for help on usage of the AclShell grant
No se si estoy entendiendo algo mal o cual es mi problema, a ver si alguien podría ayudarme.
Saludos.
  #2 (permalink)  
Antiguo 29/03/2009, 13:55
 
Fecha de Ingreso: octubre-2008
Mensajes: 127
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: [CakePHP] ACL + AUTH

Hola,
yo también estoy siguiendo el tutorial, y la verdad es que me he perdido en este punto... de momento, lo he obviado y continúo con el tutorial...

Por lo que he podido encontrar por San Google, esa línea no debe ejecutarse tal cual, sino que se tiene que sustituir las variables por su valor... pero los ignoro... en un principio pensé en ejecutar la query sobre AROS y ACOS en MySQL y sustituir los valores por el alias devuelto y utilizar sólo uno de los permisos... pero nada...

Lo siento... la verdad es que el tutorial es bastante complejo de seguir... y, por supuesto, no se debe al inglés... supongo que sabes que también está en español
(htp://book.cakephp.org/es/view/648/Configurando-los-permisos)

Saludos.
  #3 (permalink)  
Antiguo 30/03/2009, 11:47
 
Fecha de Ingreso: octubre-2008
Mensajes: 127
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: [CakePHP] ACL + AUTH

Hola,

he podido averiguar alguna cosilla más...

Para ver los alias de los AROs puedes ejecutar la siguiente sentencia:
cake acl view aro

En mi caso, he podido ver cuál es el problema:
Aro tree:
-----------
[1]

[4]

[2]

[5]

[3]

[6]

-----------

O sea... no tengo ningún alias definido, lo que provoca que no pueda otorgar los permisos necesarios... Creo que voy a tener que comenzar con el tutorial de nuevo por si me he dejado algún punto importante...

Suerte!
  #4 (permalink)  
Antiguo 13/05/2009, 12:58
Avatar de Fresh2000  
Fecha de Ingreso: septiembre-2004
Mensajes: 73
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: [CakePHP] ACL + AUTH

saludos


Yo segui el tutorial y me dio este error

Necesito ayuda

Código:
Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check.  Node references:
Aro: Array
(
    [User] => Array
        (
            [id] => 1
            [username] => lliccien
            [group_id] => 1
            [created] => 2009-05-13 12:48:18
            [modified] => 2009-05-13 12:48:18
        )

)

Aco: controllers/Posts/add [CORE\cake\libs\controller\components\acl.php, line 239]

Code | Context

$aro	=	array(
	"User" => array(
	"id" => "1",
	"username" => "lliccien",
	"group_id" => "1",
	"created" => "2009-05-13 12:48:18",
	"modified" => "2009-05-13 12:48:18"
)
)
$aco	=	"controllers/Posts/add"
$action	=	"*"
$permKeys	=	array(
	"_create",
	"_read",
	"_update",
	"_delete"
)
$aroPath	=	array(
	array(
	"Aro" => array()
),
	array(
	"Aro" => array()
)
)
$acoPath	=	false


        if (empty($aroPath) || empty($acoPath)) {
            trigger_error("DbAcl::check() - Failed ARO/ACO node lookup in permissions check.  Node references:\nAro: " . print_r($aro, true) . "\nAco: " . print_r($aco, true), E_USER_WARNING);

DbAcl::check() - CORE\cake\libs\controller\components\acl.php, line 239
AclComponent::check() - CORE\cake\libs\controller\components\acl.php, line 89
AuthComponent::isAuthorized() - CORE\cake\libs\controller\components\auth.php, line 477
AuthComponent::startup() - CORE\cake\libs\controller\components\auth.php, line 399
Component::startup() - CORE\cake\libs\controller\component.php, line 112
Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 210
Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 194
[main] - APP\webroot\index.php, line 88

Warning (2): Cannot modify header information - headers already sent by (output started at C:\xampp\cake\cake\basics.php:111) [CORE\cake\libs\controller\controller.php, line 640]

Code | Context

$status	=	"Location: http://localhost/acl/users/login"

header - [internal], line ??
Controller::header() - CORE\cake\libs\controller\controller.php, line 640
Controller::redirect() - CORE\cake\libs\controller\controller.php, line 621
AuthComponent::startup() - CORE\cake\libs\controller\components\auth.php, line 404
Component::startup() - CORE\cake\libs\controller\component.php, line 112
Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 210
Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 194
[main] - APP\webroot\index.php, line 88

(default) 2 queries took 2 ms Nr	Query	Error	Affected	Num. rows	Took (ms)
1	SELECT `Aro`.`id`, `Aro`.`parent_id`, `Aro`.`model`, `Aro`.`foreign_key`, `Aro`.`alias` FROM `aros` AS `Aro` LEFT JOIN `aros` AS `Aro0` ON (`Aro`.`lft` <= `Aro0`.`lft` AND `Aro`.`rght` >= `Aro0`.`rght`) WHERE `Aro0`.`model` = 'User' AND `Aro0`.`foreign_key` = 1 ORDER BY `Aro`.`lft` DESC 		2	2	1
2	SELECT `Aco`.`id`, `Aco`.`parent_id`, `Aco`.`model`, `Aco`.`foreign_key`, `Aco`.`alias` FROM `acos` AS `Aco` LEFT JOIN `acos` AS `Aco0` ON (`Aco0`.`alias` = 'controllers') LEFT JOIN `acos` AS `Aco1` ON (`Aco1`.`lft` > `Aco0`.`lft` AND `Aco1`.`rght` < `Aco0`.`rght` AND `Aco1`.`alias` = 'Posts') LEFT JOIN `acos` AS `Aco2` ON (`Aco2`.`lft` > `Aco1`.`lft` AND `Aco2`.`rght` < `Aco1`.`rght` AND `Aco2`.`alias` = 'add') WHERE ((`Aco`.`lft` <= `Aco0`.`lft` AND `Aco`.`rght` >= `Aco0`.`rght`) OR (`Aco`.`lft` <= `Aco2`.`lft` AND `Aco`.`rght` >= `Aco2`.`rght`)) ORDER BY `Aco`.`lft` DESC
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 12:05.