[英]Design for User hierarchy in Ruby on Rails
我有一個需要身份驗證的應用程序,並且有一個用戶模型。 授權具有以下規則的4個級別:
除此之外,我希望所有用戶都可以通過單個界面登錄。
有沒有處理這種等級制度的模式? 使用諸如cancan之類的授權插件將允許我定義不同級別的授權,但不能定義不同用戶之間的關系。
從本質上講,我希望有一個設計使我能夠編寫如下控制器代碼:
@level_two_users = current_user.find_all_my_level_two_users
謝謝
您可以在用戶模型中添加屬性level
,並可以查詢允許的用戶。
要獲得所有X級用戶,只需使用類似User.find_all_by_level(2)
的查詢
class User
attr_accessible :level
def allowed_to_edit_user?(user)
case self[:level]
when 1
user.level > 1
when 2
user.level > 2 && user.created_by?(self)
end
false
end
def allowed_to_create_user_with_level?(level)
self[:level] <= 2 && self[:level] < level
end
end
順便說一句。 誰創建1級用戶? ;-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.