0

Symfony1.4プロジェクトのさまざまな役割に特定のアクションを提供したいと思います。

プロジェクトには、特定のロールによってのみ値を変更できるいくつかのデータベーステーブルが含まれています。

たとえば、管理者はすべてのモデルのCRUDにアクセスできます。別の役割(コンサルタントになる)は、指定されたモデル(すべてではない)からの結果のみを取得できます(変更または削除はできません)。

symfonyでそのような機能をサポートするにはどうすればよいですか?プロジェクトの役割は事前に指定されていると思います。

私が考えていた解決策の1つは、役割ごとにモジュールとアクションを個別に作成することです(クラッドパネルと1つのロギングインターフェイス)が、それは大変な仕事のように思えます。

よりスマートな方法が何であるか疑問に思っています。

4

1 に答える 1

1

それを達成するための最良の方法は、間違いなくクレデンシャルだと思います(sf1.2の場合ですが、1.4の場合は問題ありません)。

sfGuardDoctrineを使用して、関連付けられた権限(クレデンシャル)を持ついくつかのグループを使用することをお勧めします。グループ管理者コンサルタントなどを定義します。変更削除作成編集などのいくつかの資格情報を関連付けます。

そして、ユーザーがログインするたびに、(ユーザーまたは彼のグループによって関連付けられた)資格情報が自動的に定義されます。

その後、ユーザーが実行できるかどうか、すべてのアクションを確認する必要があります。

if($this->getUser()->hasCredential('modify'))
{
  // authorized action
}

sfGuardのドキュメントをさらにいくつか示します(sf1.0に関連していますが、どのように機能するかを理解しておくとよいでしょう)。

于 2012-04-24T14:18:34.263 に答える