繁体   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