在CakePHP中,如何创建拒绝访问路由?

时间:2011-06-08 14:54:20

标签: php cakephp acl

在浏览设置Auth和ACL组件的教程时,我发现当登录用户访问我们网站中没有权限的区域时,会将其重定向到/.

这不是一个节目制作者,因为我总是可以将它们从我的主页视图重定向到适当的位置,或者只是在那里显示错误,但这看起来有点像hacky。有没有办法指定ACL如果用户无法访问特定视图,应该重定向用户的位置?在这种情况下,我只想设置一个简单的全局访问被拒绝错误页面。即使将它们再次重定向到登录页面也是可以接受的,但主页看起来似乎是系统使用的一个非常奇怪的默认值。

1 个答案:

答案 0 :(得分:1)

您可以设置$ this-> Auth-> authorize ='controller',然后在isAuthorized()回调中指定重定向。

http://book.cakephp.org/view/1275/authorize

http://api13.cakephp.org/view_source/auth-component/#line-508

您还可以测试$ this-> Auth-> user()获取足够的权限并重定向失败:

if ($this->Auth->user('level') < 2) {
    $this->redirect('/users/declined');
}

否则,Auth-&gt; redirect()会提取login redirect属性设置的内容,默认为/。见http://api13.cakephp.org/view_source/auth-component/#line-745