6

我试图弄清楚如何将没有有效订阅运行的用户重定向到某个页面(在我的情况下是支付页面)。

我知道我可以通过在我的所有操作中添加 isGranted 检查来做到这一点,但我不喜欢这个解决方案,因为考虑到我所拥有的操作数量,这似乎是在浪费时间。

我查看了 firewall.access_denied_url 参数,但我不想将 AccessDenied 链接到付款页面,因为例如,任何没有 ROLE_ADMIN 的用户都拒绝管理页面访问,并被重定向到付款页面没有任何意义。

我已经有一个投票者检查用户是否有效并在这种情况下授予访问权限,但是当用户尝试达到某种模式并在访问被拒绝时重定向他/她时,我怎么能设法使用这个投票者?

提前致谢!

4

2 回答 2

6

在 app/config/security.yml 中添加 security:

access_denied_url: /foo/error403

Symfony 然后将用户无法访问的所有页面重定向到 /foo/error403 页面。

于 2013-06-25T08:42:46.713 回答
1

您可以使用JMSAopBundle

从文档:

这个包为 Symfony2 添加了 AOP 功能。

如果您还没有听说过 AOP,它基本上允许您将横切关注点(例如,安全检查)分离到一个专用类中,而不必在所有需要的地方重复该代码。

换句话说,这允许您在调用服务层或控制器中的某些方法之前和之后执行自定义代码。您还可以选择跳过原始方法的调用,或者抛出异常。

于 2012-04-04T06:40:58.280 回答