2011-01-07 10 views
1

私はRails 3アプリをビルドしています.ユーザが各PMの特定の役割を決定する洗練されたユーザ権限ツールの設計に取り組んでいます。このユーザー権限の設定は意味がありますか?

このシナリオを想像してみてください。当社は、3種類のデータに特定の役割を設定したいと考えています。

  • プロジェクトテーブル
  • クライアントテーブル
  • 法人アカウント(つまり、会社テーブル)

私はこれらの分野での役割多型のテーブルを追加することを考えています:(

  • のuser_id all_users == trueでない限り、このロールが適用されるユーザー)
  • 「all_items == true」以外のアイテムタイプ(all_items == true以外の場合は「Project」、「Client」、「Company」など)
  • アイテムID(上記と同じ)
  • ロール(「読み取り」、「編集」、「破棄」、あるいは 『カスタム』)
  • ALL_USERS(ブール値:このアイテムの役割は、すべてのユーザーに適用されない)
  • ALL_ITEMS(ブール:このユーザーの役割は、すべてのアイテムに適用されます)
  • のcompany_id(「所有する会社'this role)

私はCanCanがこれを達成するための素敵な方法だと感じますが、ここでは私の質問。 1.上記の表はこれを行う良い方法ですか? CanCanは、これと連携して効果的なソリューションを作成できましたか?

答えて

0

あなたのテーブルは非常に複雑な認証方式を実装するための合理的な方法のようです。

CanCanが行く限り、はい、これで完全に結びつきます。すべてのCanCanは、特定の基準に従ってアクション、モデルなどに対する権限を定義する機能を提供します。これらの基準は何でもかまいません(たとえば、月の日など)が、通常は役割に結びついています。したがって、ロールテーブルの情報と評価される特定のモデルインスタンスに従って、権限を指定するだけです。

関連する問題