我正在阅读 CanCan 文档,我发现可以授予细粒度的资源级别限制/授权。我的问题稍微容易一些。我只需要阻止不是特定用户类别的任何人访问 URL。例如,假设我的/admin
Rails 应用程序上有一个 URL。我只希望那些有admin
角色的用户能够去那里并将那些没有到主页的用户重定向到主页,CanCan 是否也能够处理这种类型的粒度?
问问题
175 次
1 回答
0
是的,这不仅可能是 CanCan 的工作。
也许您还没有详细阅读文档。实际上 CanCan 在控制器级别上工作。它依赖于before_filter
authorize!
向ability
班级发送消息,然后以干净有序的方式处理授权。
至于如何处理rejections,可以在ApplicationController中解救,从exceptions
CanCan给你带来的来看
rescue_from CanCan::AccessDenied do |exception|
# Not sure the exact message but the default should be something
# like "you need blah blah to read admin"
if expection.message.match /admin/
redirect_to some_path
end
end
于 2013-09-09T16:35:58.717 回答