Symfony2:页面事件监听器

时间:2012-07-11 18:30:55

标签: php symfony

我需要实现一个事件监听器来验证用户是否有权访问客户端的项目。

我的路线看起来像这样:

/client_a/dashboard/
/client_b/dashboard/

用户可能只有权访问“客户端A”,因此如果不允许他/她查看该项目,我需要验证并重定向用户。

页面事件监听器是最好的方法吗?如果是这样,我会听什么事?

或者,如果有更好的方法来处理场景,那会是什么样的?

谢谢,

JB

2 个答案:

答案 0 :(得分:2)

使用Symfony2提供的本机ACL功能,有一种很多更好的方法。 This "book" entry will explain it pretty clearly.

答案 1 :(得分:0)

假设/client_X/dashboard/不是您想要保护的唯一路线,您可以倾听kernel.request event

您的侦听器可能需要注入安全上下文服务,因此您可以访问用户的信息。然后,您只需检查用户是否有权访问某个客户端并做出相应的反应。