【发布时间】:2014-04-11 16:12:26
【问题描述】:
我试试:
在控制台中:
php app/console fos:user:promote grek admin
Role "admin" has been added to user "grek".
if ($this->get('security.context')->isGranted('ROLE_ADMIN')) die('ok');
这不显示为什么?
我注销,登录和相同的情况
var_dump($this->get('security.context')->getToken()->getUser());
i>protected</i> 'roles' <font color='#888a85'>=></font>
<b>array</b> <i>(size=4)</i>
0 ADMIN'</font> <i>(length=5)</i>
1 OWNER'</font> <i>(length=5)</i>
2 TESTER'</font> <i>(length=6)</i>
$user = $this->get('security.context')->getToken()->getUser();
var_dump($user->getRoles());
array (size=1)
0 => string 'ROLE_USER' (length=9)
为什么 $user->getRoles() 只给一个?
当我添加 php 应用程序/控制台 fos:user:promote grek ADMIN php 应用程序/控制台 fos:user:promote grek ROLE_ADMIN php app/console fos:user:promote grek admin
然后检查 - 我在 if ($this->get('security.context')->isGranted 中没有角色
还有一些想法:
php app/console fos:user:promote grek test
Role "test" has been added to user "grek".
php app/console fos:user:demote grek test
User "grek" didn't have "test" role.
这是什么?
【问题讨论】:
-
试试
php app/console fos:user:promote grek role_admin -
这个不改情况也是一样。