我在Cake 2.2.4中实现了ACL(仅限组级别),如下所示:
Group.1 可以访问控制器
Group.2 可以访问控制人员/招聘人员
Group.3 可以访问控制器/求职者
一切正常,但问题是当 Group.2 中有人试图访问控制器/求职者中的某些内容时,我能做的最好就是向他们展示一条消息通过$this->Session->flash('auth')
告诉他们他们没有访问权限。这在一定程度上是可以的,因为我对Flash消息有很多控制权,包括能够设置消息甚至自定义通过元素生成的HTML。
然而,应用程序的用户抱怨说,只是刷新错误的同一页面是违反直觉的。这主要是因为应用程序需要能够让一个用户在某些情况下处于 Group.2 和 Group.3 ,因此Flash消息需要与之通信用户如何将他们的帐户“升级”为两个群组。
因此,是否感觉立即重定向到具有“帐户更新”表单的新控制器操作将比带有表单链接的flash消息或带有(urgh)的flash消息更直观一个嵌入其中的表格(再次喊!)
问题是我想不出重定向用户的方法
答案 0 :(得分:2)
这已在CakePHP 2.3中解决,添加了AuthComponent::$unauthorizedRedirect
更多信息:http://book.cakephp.org/2.0/en/appendices/2-3-migration-guide.html#authcomponent