更改一个用户的角色不使用 Symfony2
Change role of one user no working with Symfony2
抱歉,这个问题已经被问过很多次了,但我没有在网上找到任何解决方案。
所以,我刚刚安装了 FOSUserBundle,并使用控制台在我的应用程序上创建了 2 个用户。问题是他们没有任何作用。
因此,在控制器上,我得到了用户实体并设置了他的角色,但是当我尝试访问限制为管理员访问的页面时,它说访问被拒绝。此外,角色在数据库上没有改变。
我在控制器中的代码:
$user = $this->container->get('security.context')->getToken()->getUser();
$user->setRoles('ROLE_ADMIN');
if (!$this->get('security.context')->isGranted('ROLE_ADMIN')){
throw new AccessDniedException('Access Denied !');
}
有人有想法吗?
提前致谢!
如果您首先想让他们远离控制器,那么在您的控制器中设置用户角色是一种非常糟糕的做法。希望您仅将这行代码用于测试。
FOSUserBundle 提供了许多命令行实用程序来帮助管理应用程序的用户。
您需要的是:
$ php app/console fos:user:promote testuser ROLE_ADMIN
用您的用户名替换 testuser。
您是否也定义了您在防火墙中的角色?
抱歉,这个问题已经被问过很多次了,但我没有在网上找到任何解决方案。 所以,我刚刚安装了 FOSUserBundle,并使用控制台在我的应用程序上创建了 2 个用户。问题是他们没有任何作用。 因此,在控制器上,我得到了用户实体并设置了他的角色,但是当我尝试访问限制为管理员访问的页面时,它说访问被拒绝。此外,角色在数据库上没有改变。 我在控制器中的代码:
$user = $this->container->get('security.context')->getToken()->getUser();
$user->setRoles('ROLE_ADMIN');
if (!$this->get('security.context')->isGranted('ROLE_ADMIN')){
throw new AccessDniedException('Access Denied !');
}
有人有想法吗? 提前致谢!
如果您首先想让他们远离控制器,那么在您的控制器中设置用户角色是一种非常糟糕的做法。希望您仅将这行代码用于测试。
FOSUserBundle 提供了许多命令行实用程序来帮助管理应用程序的用户。
您需要的是:
$ php app/console fos:user:promote testuser ROLE_ADMIN
用您的用户名替换 testuser。
您是否也定义了您在防火墙中的角色?