0

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

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

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

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

4

1 回答 1

1

问题 1:是,问题 2:不是。

我只是保持简单

如果您检查控制器中的模型属性,控制器将限制所有没有设置此属性的用户。

前任:

def create
  @user.find(params[:user_id]) 
  if @user.admin?
  @post.new(params[:post]) 
  @post.create!
  end
end

在用户模型中创建一个方法

def admin?
  role == "Admin"
end

您应该编写比这更好的代码。控制器中有很多逻辑,但这将保留除管理员之外的所有内容。

于 2012-11-26T11:53:21.180 回答