Symfony:Access Denied时显示jQuery模式对话框

时间:2017-10-18 12:24:48

标签: javascript php jquery symfony modal-dialog

在我的网站中,只有少数用户有权访问某些链接(ROLE_ADMIN等)。以普通用户身份登录并尝试访问这些链接时,我收到Symfony AccessDeniedHttpException,这意味着它可以正常工作。

问题是,如何创建一个模态对话框(jQuery我猜)只是简单地指示用户数据太明智了?

我不知道如何在树枝上做这件事,因为我必须渲染一个包含脚本的变量?至少知道这样做的正确方法会很好。

2 个答案:

答案 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或任何你喜欢的弹出窗口。