2012-04-24 6 views
0

symfony 1.4プロジェクトで、異なる役割のための特定のアクションを提供したいと思います。Symfony 1.4異なる役割の異なるCRUD

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

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

symfonyでこのような機能をサポートするにはどうしたらいいですか? プロジェクトの役割が前もって指定されているものとします。

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

もっとスマートな方法が何であるか不思議です。

答えて

1

達成するための最善の方法は、確かにcredentialsです(sf1.2でも1.4でもOKです)。

権限(資格情報)を持つグループを使用する場合は、sfGuardDoctrineを使用することをお勧めします。あなたはグループになど管理コンサルタント、など。あなたが作成、削除modifiyのように、いくつかの資格情報を関連付け、編集 ..その後、

そして、毎回aを定義しますユーザーがログインすると、自動的に(彼またはグループによって関連付けられた)クレデンシャルが定義されます。ここで

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

はsfGuardのためのいくつかのmore documentationです(sf1.0に関連するが、それがどのように機能するかを理解することが良いです):ユーザーがそれを行うことができます持っている場合は、すべてのアクションをチェックする必要があり、後

関連する問題