使用rails中的角色授权操作(不是模型!)

时间:2012-11-22 14:15:40

标签: ruby-on-rails authorization

如果我有一个具有一系列角色的简单rails用户模型,是否足以通过简单地检查该角色的模型角色属性并相应地阻止/继续来控制对操作的访问?

由于不可预见的复杂性,我是否应该利用先进的系统?

重要提示:我不打算将用户/角色授权给模型(我已经知道CanCan)。我正在寻求在控制器级别进行安全性,以便我可以更精细地分解功能。

更重要的是:说真的,我不一定会问CanCan,请仔细阅读问题并注意! :)

1 个答案:

答案 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

你应该制作比这更好的代码。对于控制器中的多个逻辑,但除了管理员之外,这将保留所有逻辑。