如果我有一个具有一系列角色的简单rails用户模型,是否足以通过简单地检查该角色的模型角色属性并相应地阻止/继续来控制对操作的访问?
由于不可预见的复杂性,我是否应该利用先进的系统?
重要提示:我不打算将用户/角色授权给模型(我已经知道CanCan)。我正在寻求在控制器级别进行安全性,以便我可以更精细地分解功能。
更重要的是:说真的,我不一定会问CanCan,请仔细阅读问题并注意! :)
答案 0 :(得分:1)
问题1:是,问题2:否。
我保持这个简单
如果检查控制器中的models属性,控制器将限制所有没有设置此属性的用户。
前:
def create
@user.find(params[:user_id])
if @user.admin?
@post.new(params[:post])
@post.create!
end
end
在用户模型中制作方法
def admin?
role == "Admin"
end
你应该制作比这更好的代码。对于控制器中的多个逻辑,但除了管理员之外,这将保留所有逻辑。