在浏览设置Auth和ACL组件的教程时,我发现当登录用户访问我们网站中没有权限的区域时,会将其重定向到/.
这不是一个节目制作者,因为我总是可以将它们从我的主页视图重定向到适当的位置,或者只是在那里显示错误,但这看起来有点像hacky。有没有办法指定ACL如果用户无法访问特定视图,应该重定向用户的位置?在这种情况下,我只想设置一个简单的全局访问被拒绝错误页面。即使将它们再次重定向到登录页面也是可以接受的,但主页看起来似乎是系统使用的一个非常奇怪的默认值。
答案 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