1

私はRails 3アプリを構築しており、Companyユーザーがそれぞれの特定のロールを決定する洗練されたユーザー権限ツールの設計に取り組んでいますPM.

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

  • プロジェクト表
  • クライアントテーブル
  • 企業アカウント (つまり、企業テーブル)

これらのフィールドを持つ Role ポリモーフィック テーブルを追加することを考えています。

  • user_id (all_users == true でない限り、このロールが適用されるユーザー)
  • 項目タイプ (all_items == true でない限り、「プロジェクト」、「クライアント」、または「会社」など)
  • アイテム ID (上記のとおり)
  • 役割 (「読み取り」、「編集」、「破棄」、さらには「カスタム」など)
  • all_users (ブール値: このアイテムの役割はすべてのユーザーに適用されますか)
  • all_items (ブール値: このユーザーの役割はすべてのアイテムに適用されますか)
  • company_id (この役割を「所有」している会社)

CanCan はこれを達成するための優れた無駄のない方法だと思いますが、ここで私の質問です。1. 上の表はこれを行うのに適した方法ですか? 2. CanCan はこれと連携して効果的なソリューションを作成できますか?

4

1 に答える 1

0

あなたのテーブルは、非常に複雑な承認スキームを実装するための賢明な方法のように思えます。

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

于 2011-01-07T15:10:50.700 に答える