CakePHP の ACL は初めてです。私の管理者グループは、'controllers'
ACO へのフル アクセスを使用して正しく設定されていると思います。ただし、明示的に公開されていないコントローラーまたはアクションに移動しようとすると、エラーが発生します。
Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check. Node references:
Aro: Array
(
[User] => Array
(
[id] => 9
[email] => Admin
[group_id] => 3
[is_active] => 1
[created] => 2013-04-08 07:59:52
[modified] => 2013-04-08 07:59:52
[Group] => Array
(
[id] => 3
[name] => Administrators
[user_count] => 2
[created] => 2013-04-08 06:34:58
[modified] => 2013-04-08 06:34:58
)
)
)
Aco: controllers/Users/index [CORE/Cake/Model/Permission.php, line 94]
私のテーブルには、エイリアスとしてのacos
エントリがあります。'controllers/Users/index'
このエントリには、参照するparent_idが'controllers/Users'
あり、次に参照するparent_idがあります'controllers'
。
私の'aros_acos'
テーブルには、管理者グループに完全なアクセス許可を付与しているエントリが 1 つだけあります。
上記のエラーに基づいて、少し掘り下げたところ、直接呼び出そうとすると$this->Acl->Aco->node('controllers/Users/index');
、戻り値がfalse
. しかし、返された値に対して同じクエリを実行する$this->Acl->Aco->node('controllers');
と、正しい配列になります。
何かが明らかに正しく機能していませんが、どこが間違っているのかわかりません。私は一日中ドキュメンテーションブックとAPIを掘り下げてきましたが、見つからない理由'controllers/Users/index'
は見つかりませんでした'controllers'
。この時点で、キャラクターと何か関係があるように見えますが、/
理由はわかりません。Aco を追加するときに同じ文字列を使用したところ、正しく保存されました。
ありがとう!