Symfony:当拒绝访问时显示jQuery模式对话框
问题描述:
在我的网站中,只有少数用户有权访问某些链接(ROLE_ADMIN等)。以普通用户身份登录并尝试访问这些链接时,我收到Symfony AccessDeniedHttpException
,这意味着它可以正常工作。Symfony:当拒绝访问时显示jQuery模式对话框
问题是,我怎么能创建一个模式对话框(我猜jQuery)只是简单地指示用户数据太明智了?
我不知道如何在树枝做它,因为我将不得不渲染一个包含脚本的变量?至少知道这样做的正确方法是很好的。
答
据我所知,如果用户没有足够的权利点击(或继续)到该链接,您需要打开一个模式窗口,并向用户发送一些消息,对吗?
快速和简单的解决方案:
我们有这样的链接(例如):
<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或任何你喜欢的弹出窗口。
谢谢,这帮了我很多! –
这在技术上效果很好。但是我还会补充说,当有多条路由需要像这样检查时,拥有一个异常监听器会更有意义,因此检查逻辑是集中定义的,并且不会链接到您的视图层。 – Asha