我正在阅读CanCan文档,我发现可以授予精细的资源级别限制/授权。我的问题稍微容易一些。我只需要阻止任何不是特定类别用户的人访问URL。例如,假设我的Rails应用程序上有一个/admin
URL。我只希望那些具有admin
角色的用户能够去那里并重定向那些不在主页上的用户,CanCan是否也能够处理这种类型的粒度?
答案 0 :(得分:0)
是的,不仅可能是CanCan的工作。
也许你没有详细阅读过该文档。实际上CanCan可以在控制器级别上运行。它依赖于before_filter
authorize!
向ability
课程发送消息,然后以干净有序的方式处理授权。
关于如何处理拒绝,你可以在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