繁体   English   中英

如何根据Symfony中的角色为两个控制器提供一个URL?

[英]How to have one URL for two controllers depending of roles in Symfony?

我正在尝试在Symfony 2.7上创建我的WebSite。 我想要两个带有基本URL的“ home”:“ /”。 一个用于具有ROLE_USER(已连接)角色的用户,另一个用于具有IS_AUTHENTICATED_ANONYMOUSLY角色的用户。

我正在考虑一个URL调用两个控制器,而不是调用将根据权限显示第一个或第二个视图的同一个控制器(我认为这不是一个好习惯)。

有人知道怎么做吗?

我什至不知道我是否会采取良好的做法,因此,如果您引导我采用另一种方式,请放心,谢谢。

最好的祝福,

这是错误的方法,因为Symfony会首先尝试将您的路由与已配置的firewall匹配,然后在进行身份验证后将检查正确的ROLE_USER授权。

因为您想允许IS_AUTHENTICATED_ANONYMOUSLY ,所以应该在控制器或模板中检查ROLE_USER 您无法基于相同的URL进行检查。

在您的控制器中:

if ($this->get('security.authorization_checker')->isGranted('ROLE_USER')) {
    // ...
}

在您的Twig模板中:

{% if is_granted('ROLE_USER') %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM