ich werkle im Moment mal wieder etwas mit ACL's herum und setze dabei sowohl ein User-Model, als auch Group-Model ein.
Die ACL-Authentifizierung soll ausschließlich über die Groups erfolgen, allerdings sind User und Group per HABTM verknüpft.
Das Problem, was ich habe, ergibt sich letztlich beim Einsatz des Callbacks bindNode() im User-Model. Ich würde gerne ein Array mit mehreren Gruppen zurückgeben, da ein User theoretisch in mehreren Gruppen sein kann. Das Array zu füllen ist auch kein Thema, allerdings scheint es mir, dass die ACL-Component mit mehreren Groups nicht umgehen kann. Jedenfall haut es mir folgenden Dump um die Ohren:
- Code: Alles auswählen
Warning (512): SQL Error: 1054: Unknown column 'Aro0.0' in 'where clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 521]
Query: SELECT `Aro`.`id`, `Aro`.`parent_id`, `Aro`.`model`, `Aro`.`foreign_key`, `Aro`.`alias` FROM `dev_aros` AS `Aro` LEFT JOIN `dev_aros` AS `Aro0` ON (`Aro`.`lft` <= `Aro0`.`lft` AND `Aro`.`rght` >= `Aro0`.`rght`) WHERE `Aro0`.`0` IN ('Group', '12') AND `Aro0`.`1` IN ('Group', '8') ORDER BY `Aro`.`lft` DESC
Warning (512): AclNode::node() - Couldn't find Aro node identified by "Array
(
[Aro0.0] => Array
(
[model] => Group
[foreign_key] => 12
)
[Aro0.1] => Array
(
[model] => Group
[foreign_key] => 8
)
)
Klar, die Tabelle Aro0 gibt's nicht, nur Aro.
Die Methode sieht folgendermaßen aus:
- Code: Alles auswählen
Hat jemand vielleicht eine Idee? Ich grad echt auf dem Schlauch. Eigentlich muss es doch egal sein, ob als return ein oder mehrere Werte im Array kommen...
Herzlichen Dank,
Tobi