0

ACL を使用する必要があるアプリを作成しています。コントローラーの 1 つでアクションのアクセス許可を確認しようとしています。これは動作する私のケーキコンソールコードです:

./cake acl check Group.83 controllers all
Group.83 is allowed.

ただし、コントローラーでこのコードを使用すると、true が返されます。

$checkPerm = $this->Acl->check('Group.83', 'controllers', 'all');

次のエラーが表示されます。

Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check.  Node references:
Aro: Group.83
Aco: controllers [CORE/cake/libs/controller/components/acl.php, line 273]

ACL が正しく設定されていることはわかっています。そうしないと、cake コンソール コマンドが失敗していました。それは私のコントローラーにあると思いますが、何がこのエラーを引き起こしているのかわかりません。何か案は?

4

1 に答える 1

1

配列またはスラッシュが機能しないため、シェルはドット構文を使用します。次に、シェルはそれを抽出し、配列構文を使用するコンポーネントで読み取り可能にします。チェックを次のように変更します。

$checkPerm = $this->Acl->check(array(
  'model' => 'Group',
  'foreign_key' => 83
), 'controllers', 'all');

そして、それはそれを処理する必要があります!

于 2012-05-24T14:45:40.970 に答える