在我的网站中,只有少数用户有权访问某些链接(ROLE_ADMIN等)。以普通用户身份登录并尝试访问这些链接时,我收到Symfony AccessDeniedHttpException
,这意味着它可以正常工作。
问题是,如何创建一个模态对话框(jQuery我猜)只是简单地指示用户数据太明智了?
我不知道如何在树枝上做这件事,因为我必须渲染一个包含脚本的变量?至少知道这样做的正确方法会很好。
答案 0 :(得分:1)
您可以实现异常事件侦听器并侦听AccessDeniedHttpException。可以将响应设置为显示错误消息或HTML页面。文档here。
答案 1 :(得分:1)
据我所知,如果用户没有足够的权限点击(或继续)到这个链接,你需要打开一个带有一些消息的模态窗口,对吗?
快速简便的解决方案:
我们有这样的链接(例如):
<a href="{{ path("some_route")}}"> click me</a>
您可以检查当前用户是否具有角色(is_granted) ROLE_ADMIN 然后显示它,否则显示一些与弹出窗口的特定链接,如下所示: main.html.twig :
{% if is_granted('ROLE_ADMIN') %}
<a href="{{ path("some_route")}}"> click me</a>
{% else %}
show a link with popup here
{% endif %}
你可以使用bootstrap popover或任何你喜欢的弹出窗口。