是否有一个CakePHP isAuthorized()用于简单的allow()/deny()


Is there a CakePHP isAuthorized() for simple allow()/deny()?

我有一个应用程序,其中我使用allow()/deny()的大部分访问控制,我希望能够检查beforeFilter(),如果用户被授权或没有。如果我使用控制器或其他验证方法之一,我可以使用isAuthorized(),但这并不适用于allow/deny -我希望它返回true,如果用户没有登录,但他们在一个公开访问的页面。

也许退一步,允许其他解决方案:我有我的应用程序设置使用子域(user.example.com),如果他们不使用子域,我想返回404的非前端页面,只允许他们通过用户子域访问它们。

是否有更好的方法来做到这一点-也许通过添加控制器授权?我仍然会遇到需要知道他们是否被授权的问题。是否有一种方法可以在授权失败时更改Auth组件的操作?我希望它返回404,但仅在某些条件下(具体来说,用户不是通过子域访问网站)。

allow()和deny()仅指无需登录即可访问url的能力。控制器中的isAuthorized回调更适合于已经通过登录表单的用户的权限。

请查看本教程的说明:http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

您可以使用Blackhole返回404错误。问题的其余部分我不太明白。您使用Auth,但使用自定义ACL?