[英]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.