0

acl パーミッションを有効にして CakePHP アプリケーションを実行しています。ユーザーのグループがコントローラーの 1 つですべてのアクションにアクセスできるようにしましたが、ユーザー ID がアクセスしようとしているモデルのユーザー ID 値と一致しない場合、アクセスを拒否できるようにしたい場合があります。または他の任意の基準に基づいています。

では、ユーザーが ACL コンポーネントからアクションへのアクセス権を既に持っている場合に、アクションへのユーザー アクセスを拒否する従来の方法は何ですか?

4

1 に答える 1

0

TLDR: ACL を使用しないでください。(それはやり過ぎであり、あなたのプロジェクトでは理想的ではないようです)。

状況に応じて多くのオプションがありますが、要約すると、そこにいる/そうする許可があるかどうかを確認する方法を作成することになります。

コントローラー、モデル、またはすべてのモデルで使用できる動作のメソッドであるかどうか...など。

あなたの説明からの私の推測では、理想的な方法は、メソッド「hasAccess」などで動作を作成することです。次に、アクセスを制限したい「いくつかのアクション」で、次のようなメソッドを実行します。

if(!$this->MyModel->hasAccess($userId)) $this->redirect('/');
于 2013-08-11T05:48:15.723 に答える