0

CakePHPでの作業は、これが私の状況です。

私にはユーザーとがいますOrderOrdersはユーザーによって作成されます。を作成したユーザーのみがOrder編集できます。(管理者もできますが、それは重要ではないと思います)。

標準のAuthコンポーネントを使用しており、OrdersControllerにisAuthorized関数があり、ユーザーがログインしているかどうかを確認し、ユーザーが実行を許可されていないアクションを実行できないようにします。

渡されたパラメータとデータベースから出力されるデータに基づいて、ユーザーがアクションを実行できるかどうかを判断したいと思います。つまり、ユーザーは編集しようとしている注文を所有していますか?これが当てはまる場合、私は現在、各アクションの内部をチェックしています。

isAuthorizedからfalseを返すことによってトリガーされるのと同じワークフローをトリガーする方法はありますか?多分例外を投げますか?

渡されたパラメータにアクセスするための醜いメソッドとデータ取得の重複が必要になるため、isAuthorized関数内でこれらのより細かいチェックを実行したくありません。CakePHPは私がこれを処理することをどのように期待していますか?

(他のコントローラーで行うより複雑なチェックがあります)

4

2 に答える 2

1

これを機能させるにはいくつかの方法があります。ここに簡単な例があります: http://nuts-and-bolts-of-cakephp.com/2009/04/22/simplistic-example-of-row-level-access-control-with-auth-security- and-app-model-in-cakephp/

これにより、これを一般的にどのように処理するかについてのアイデアが得られるはずであり、その上に 1 つのアプローチとして構築することができます。

于 2012-10-12T18:37:45.373 に答える
1

これはあなたが探しているものです:

http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html#authorization-who-s-allowed-to-access-what

AppController の isAuthorized() 呼び出しをオーバーライドし、親クラスが既にユーザーを承認しているかどうかを内部的にチェックします。そうでない場合は、追加アクションへのアクセスを許可し、条件付きで編集と削除にアクセスできるようにします。

お役に立てれば

于 2012-10-12T11:33:22.143 に答える