Acos による CakePHP Acl データベースと、Aro の許可が yes か no かを一覧表示したいと思います。
これを行う最善の方法は何ですか?
Cake には、acl データを変更または表示するためのインターフェースを提供するacl シェルが組み込まれています。これには、アクセス制御オブジェクト (aco、「もの」) とアクセス要求オブジェクト (aro、ユーザー) のデータ階層を表示できるビュー (ツリー)機能が含まれています。
アコの木の例:
$ Console/cake acl view aco
Welcome to CakePHP v2.4.0-dev Console
---------------------------------------------------------------
App : app
Path: /var/www/app/
---------------------------------------------------------------
Aco tree:
---------------------------------------------------------------
[1] controllers
[2] Posts
[3] Posts
[4] index
---------------------------------------------------------------
アロの木の例:
$ Console/cake acl view aro
Welcome to CakePHP v2.4.0-dev Console
---------------------------------------------------------------
App : app
Path: /var/www/app/
---------------------------------------------------------------
Aro tree:
---------------------------------------------------------------
[1] Group.1
---------------------------------------------------------------
特定の aro が特定の aco にアクセスできるかどうかを判断するためのチェック関数もあります。
$ Console/cake acl check Group.1 controllers/Posts
Welcome to CakePHP v2.4.0-dev Console
---------------------------------------------------------------
App : app
Path: /var/www/app/
---------------------------------------------------------------
Group.1 is allowed.
acl データの性質は、単一の組み合わせ (この特定のユーザーがこの特定のオブジェクトにアクセスできるか)をチェックするのは比較的高価であり、(可能ではあるが) 「誰が何にアクセスできるか」の一般的なソリューションを構築することは非現実的です。これが実質的にコアがない理由です。 -その質問に答える手段を提供します。
ただし、acos の特定のリストについては、簡単にAclComponent::checkを呼び出してループし、「この特定のユーザーがアクセスできるもの」の回答のリストを取得できます。acl データは、モデルを使用して他のモデル データと同じようにアクセスできAro
ますAco
。