我需要实现一个事件监听器来验证用户是否有权访问客户的项目。
我的路线如下所示:
/client_a/dashboard/
/client_b/dashboard/
用户可能只有访问“客户端 A”的权限,因此如果不允许他/她查看该项目,我需要验证并重定向用户。
页面事件监听器是最好的方法吗?如果是这样,我会听什么活动?
或者,如果有更好的方法来处理这种情况,那会是什么样子?
谢谢,
JB
使用 Symfony2 提供的本机 ACL 功能有一个更好的方法来做到这一点。 这个“书”条目将非常清楚地解释它。
假设/client_X/dashboard/
不是您想要保护的唯一路线,您可以侦听kernel.request
event。
您的侦听器可能需要将安全上下文服务注入其中,以便您可以访问用户的信息。然后,您只需检查用户是否有权访问某个客户端并做出相应反应。