簡體   English   中英

Ruby on Rails中的用戶層次結構設計

[英]Design for User hierarchy in Ruby on Rails

我有一個需要身份驗證的應用程序,並且有一個用戶模型。 授權具有以下規則的4個級別:

  1. 1級用戶可以創建/編輯/刪除2、3和4級所有用戶。
  2. 2級用戶可以創建3級和4級用戶,並且只能編輯他們擁有的那些用戶。
  3. 3級和4級無權創建/編輯/刪除用戶。
  4. 更新:3級和4級用戶可以有多個2級父級用戶。

除此之外,我希望所有用戶都可以通過單個界面登錄。

有沒有處理這種等級制度的模式? 使用諸如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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM