如何在没有自定义Controller的情况下配置重定向

时间:2014-11-14 11:04:14

标签: symfony routing

我的应用程序中有两个角色:user和Admin 我配置我的访问控制,用户无法访问我的页面:你好,只有管理员有这个访问权限:我在我的security.yml中使用了这段代码

access_control:
   - { path: ^/hello/, role: ROLE_ADMIN }

当一个简单的用户将在根目录中连接:hello.I有错误:访问被拒绝:

如何配置我的应用程序,当他想要访问root hello时,会将简单用户重定向到主页面(或连接页面)。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

也许你应该创建kernel.listener.accessDenied? Using Symfony2's AccessDeniedHandlerInterface

答案 1 :(得分:0)

在处理/ hello路由的控制器中,添加逻辑以根据角色重定向用户。您可以通过在该控制器中添加以下代码行来实现此目的

    if ($this->get('security.context')->isGranted('ROLE_USER')) {
        return $this->redirect($this->generateUrl('Route for Main page'));
    }