2011-01-07 21 views
1

我正在構建一個Rails 3應用程序,我正在設計一個複雜的用戶權限工具,其中Company用戶確定每個PM的特定角色。此用戶權限設置是否有意義?

想象一下這種情況 - 公司希望在三種類型的數據上建立特定的角色。

  • 項目表
  • 客戶表
  • 企業賬戶(即公司表)

我想添加一個角色多態表與這些字段:

  • USER_ID(這個角色適用的用戶,除非all_users == true)
  • 項目類型(例如「項目」,「客戶」或「公司」,除非all_items == true)
  • 項目標識(如上)
  • 角色(例如「讀取」,「編輯」,「銷燬」,甚至是‘定製’)
  • ALL_USERS(布爾:沒有此項目的作用適用於所有用戶)
  • all_items(布爾:這是否用戶的角色適用於所有項目)
  • COMPANY_ID(是誰擁有這家公司'這個角色)

我覺得CanCan會是一個很好的方法來完成這個,但是這裏是我的問題。 1.上表是做這件事的好方法嗎? CanCan可以配合這個來創建一個有效的解決方案嗎?

回答

0

你的表似乎是一個明智的方式來實現一個非常複雜的授權方案,這似乎是你在追求什麼。

就CanCan來說,是的,它將與此完美結合。 CanCan所做的一切都是爲您提供根據特定標準定義關於操作,模型等的授權的能力。這些標準可以是任何事情(例如,當月的某天等),但通常與角色綁定。因此,您只需根據角色表中的信息以及將要評估的特定模型實例來指定授權。