CakePHPの - どのように私は世界的にそのデータの所有者に、データ上の(C)RUD操作を制限するのですか?

StackOverflow https://stackoverflow.com/questions/1749297

  •  20-09-2019
  •  | 
  •  

質問

私はすべてが単一のユーザ(例えばUSER->クライアント - >プロフィール)に何らかの形で関連しているモデルを有しています。今、ユーザーが唯一のようにほぼすべてのデータベース操作を、自分のデータに(C)RUD(プロファイルのみの所有者が成功する必要がありますアクセス/プロフィール/編集/ [hisId])に 『User.id』 =」などの条件を許可する必要があります>の$ this - >セッション - >( 'Auth.User.id')読み」が含まれるべきです。これは、(検索など)のモデル関数は、常にユーザーのテーブルに「を介して自分の道を」に参加(またはこれを行う良い方法ではないようです複数のテーブル内のデータの所有者を保存)する必要があります。

これはどのように(特にすべてのアクションでユーザーIDを比較することなく)さまざまなモデルとアクションのための正しい方法で行われていますか?モデルのコールバック関数であるかもしれないが、今、私は一般的な解決策が表示されません。

これは、私は非常に明白な解決策を逃す可能性がありますので、こじつけのシナリオではないようです。

ご協力いただきありがとうございます!

役に立ちましたか?

解決

私は、すべての適切なモデルが継承するスーパークラスを作成します。および権限をチェックするために、そのようなbeforeFindとしてモデルコールバックメソッドを使用する

http://book.cakephp.org/view/76/Callback-Methods

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top