1
有沒有人試圖使用authlogic /聲明授權寶石添加用戶角色切換?聲明授權用戶切換
我的要求是用戶可以有許多角色(例如作者,教師),並可以在應用程序中切換角色。
我對如何我會處理這兩個思路:
- 添加另一個布爾屬性(活動),到user_roles加入 表
- 複製切換ROLE_ID到用戶表和工作 關閉該
我讀了聲明授權自述,不能看,似乎是建於什麼。任何想法,將不勝感激
有沒有人試圖使用authlogic /聲明授權寶石添加用戶角色切換?聲明授權用戶切換
我的要求是用戶可以有許多角色(例如作者,教師),並可以在應用程序中切換角色。
我對如何我會處理這兩個思路:
我讀了聲明授權自述,不能看,似乎是建於什麼。任何想法,將不勝感激
今天回頭看看,解決方案非常簡單。我去添加一個布爾屬性到我的多對多user_roles加入,以避免重複。現在加入具有以下屬性:
id | user_id | role_id | active
的role_symbols方法在我的用戶模型,用於在authorization_rules.rb DSL現在看起來像鉤:
def role_symbols
user_roles.where(:active => true).map do |user_role|
user_role.role.name.underscore.to_sym
end
end
現在用戶角色在user_roles表中爲自身設置了哪個角色具有活躍的true。
用戶切換是一件容易的事(從用戶模式)
def self.set_active_role(user_id, role_id)
UserRole.where(:user_id => user_id).update_all(:active => false)
activate_role = UserRole.where(:user_id => user_id, :role_id => role_id).first
activate_role.update_attributes(:active => true)
end
認爲它可能幫助別人,將來