0

我知道那裏有許多優秀的授權寶石,例如cancan,聲明式授權,cantango等等。我想知道是否有可能將模型類用作角色本身?是否有可能將模型類作爲rails的角色?

喜歡例如讓有兩個資源導師和學生,那麼是否有可能讓導師和學生擔任角色?我這樣問,因爲我對不同的資源有不同的認證頁面,因爲我的資源完全不同,而且我不想爲單個用戶類進行認證。

還指導我,如果我是完全錯誤的,因爲我是新來的鐵軌:-)。

回答

3

簡短回答是「是」。對於康康來說,最終你正在定義什麼是授權訪問,你可以做到這一點,無論你想要的。大多數自動作品都會假設用戶模型,但使用提供的幫助器並不難。您可以像往常一樣在ability.rb文件中定義授權邏輯,但在控制器中手動調用authorize!

那就是說,爲什麼不讓生活變得更簡單,並使用單個用戶模型,而是讓用戶的角色具有上下文相關性?然後,您可以從已建立的auth工作流中受益,並且可能還有更清晰的域模型。

+1

對於具有不同授權級別的單用戶模型,有一個完美的解決方案。您可以簡單地添加一個代表不同用戶授權級別(可單獨存儲爲常量)的位掩碼整數字段。一個例子是管理員1,管理員2,管理員和經理3,員工4等。[role_model](https://github.com/martinrehfeld/role_model)gem提供開箱即用功能並恭維cancan完美。 – Noz 2013-02-20 15:13:42

+0

感謝戴夫和凱爾澄清我的疑惑。 – archit2u 2013-02-20 15:49:11

相關問題