2012-06-04 86 views
6

我試圖建立一個授權/認證系統,而且我感到困惑,所以我有幾個問題:使用設計/慘慘/ Rolify一起

  1. 在很多教程,人們建立了用戶/角色HABTM關係。 我得到這允許每個用戶有多個角色,但如果你 希望每個用戶只能有一個角色,這是必要的?如果我想爲「活躍」和「非活躍」用戶提供選項,那麼這些 應該是角色還是其他角色?
  2. 在慘慘維基,它說,如果你想要一個用戶擁有一個角色,你應該只讓它作爲一個屬性,然後使用「可以 :管理:所有如果user.role ==‘admin’的」,但是不是 危險,因爲每次「管理員」只是一個字符串?這個 重要嗎?有什麼更好的方法來處理這個問題?

我已經盡我所能通過參與一切的文檔閱讀,我開始使用此教程

http://railsapps.github.com/tutorial-rails-bootstrap-devise-cancan.html

雖然我也看到 http://starqle.com/articles/rails-3-authentication-and-authorization-with-devise-and-cancan-part-1/和 tonyamoyal.com/2010/09/29/rails-authentication-with-devise-and -cancan-part-2-restful-resources-for-administrators/

我只是不能真正按照我想要的方式工作。我該怎麼做呢?

回答

8

1.你並不需要多個角色或一個角色表

康康舞是不可知的,你是如何在你的應用程序中定義的角色。您可以在用戶模型中輕鬆地創建角色字段。

至於「積極」和「無效」的用戶,你有兩個選擇。您可以爲該狀態設置一個字段,或者您可以具有「不活躍」角色並考慮其他任何「活動」角色。這取決於您的「主動」是什麼意思,以及您如何在應用程序中使用該信息。

2.有沒有錯,在一個字符串存儲用戶的角色。

該角色被存儲爲一個字符串不使其不太安全的。但是,您應該使用用戶角色的attr_protected to prevent mass assignment

attr_protected :role 

這樣,用戶將無法更新自己的角色。