私は、複数のレベルの権限を持つサイトを作成しています。私のシステムには基本的に3種類のユーザーがいます。彼らは管理者、ビジネス、消費者(通常のユーザー)です。広告サイトを構築していると言ってみましょう。Rails Design Question:コントローラを複数の特権レベルでどのように構成するのですか?
私は、レールの足場に付属するRESTful APIを備えたモデル「キャンペーン」を用意しています。企業はキャンペーンを作成できます。ユーザーは参加したいキャンペーンのみを見ることができ、管理者はすべてを行うことができます。
ここで、before_filterを適用し、特定のビューにアクセスできるユーザーの種類を厳密にチェックする方法を知っています。
ただし、特権レベルごとに固有のビューがあります。
企業はキャンペーンの洞察と分析を見ることができます。 (このキャンペーン/アナリティクスと呼ぶ) コンシューマーは、参加したすべてのキャンペーンを見ることができます。(このキャンペーン/お客様に電話しましょう) 管理者は、サイトのアクティビティを監視できる特別なビューを持っています。 (このキャンペーン/ monitor_businessesと呼ぶ)。
私のCampaignControllerには、通常のRESTfulビュー+ analytics + your + monitor_businessesがあります。もちろん、私は複数のデータモデル(キャンペーンだけでなく)を持っています。これにより、これらのデータモデルのRESTfulコントローラが本当に面倒なものになります。
どうすればよいですか? ConsumerControllerを開始しBusinessControllerを開始することを真剣に検討しており、これらのコントローラに関連するすべてのビューを配置します。これが「RESTful」原則に違反しているのかどうかはわかりませんが、私の問題に対処するためのより良いパターンが存在するかどうかを知りたいと思います。
私はあらゆる種類の提案に開放されています。
どのようにユーザー認証を処理していますか? –