按角色覆盖userAdmin

时间:2017-08-21 08:14:27

标签: symfony sonata-admin sonata

我正在使用SonataAdminBundle开发后端,我希望通过按角色列出用户来管理用户,例如管理员列表和简单用户列表。

我覆盖了用户管理类(AdministrateurAdmin和SimpleuserAdmin),如下所示:

<?php

namespace Myproject\BackendBundle\Admin;

use Sonata\UserBundle\Admin\Model\UserAdmin as BaseUserAdmin;

class AdministrateurAdmin extends BaseUserAdmin
{
    // ...
}

我想按角色 ROLE_ADMIN 显示管理员。

1 个答案:

答案 0 :(得分:0)

尝试添加此功能:

public function createQuery($context = 'list')
{
  $query = parent::createQuery($context);
  $query->andWhere(
      $query->expr()->in($query->getRootAliases()[0] . '.roles', ':my_param')
  );
  $query->setParameter('my_param', 'ROLE_ADMIN');
  return $query;
}