Как создать пользователя со светильниками с помощью сонаты admin - PullRequest
0 голосов
/ 31 января 2019

Я запустил свое приложение в Symfony 4.2 с помощью FOSUserBundle и создал файл фикстуры для создания администратора.

use FOS\UserBundle\Doctrine\UserManager;
...
/** @var UserManager $userManager */
$userManager = $this->getContainer()->get('fos_user.user_manager');
/** @var User $user */
$user = $userManager->createUser();
$user
    ->setUsername('username')
    ->setEmail('email')
    ->setPlainPassword('password')
    ->setSuperAdmin(true);
$manager->persist($user);
$manager->flush();

Это работало нормально, но затем я решил использовать SonataAdmin и ACL.

С тех пор я больше не могу войти в систему с правами администратора.

Но если я создаю пользователя с правами администратора с помощью команды bin/console fos:user:create --super-admin, а не из файла фикстуры, я могу войти как обычно.

При проверке базы данных единственными различиями между двумя пользователями являются соль и хэш пароля, но это ожидаемо.

Тем не менее, кто-нибудь может объяснить, что мне нужно изменить в файле фикстуры, чтобы онсоздать работающего администратора?

Заранее спасибо.

1 Ответ

0 голосов
/ 31 января 2019

Ответ в FOS\UserBundle\Command\CreateUserCommand.Вам нужно использовать FOS\UserBundle\Util\UserManipulator для создания пользователя.

use FOS\UserBundle\Util\UserManipulator;

...

/** @var UserManipulator $userManipulator */
$userManipulator = $this->getContainer()->get('fos_user.util.user_manipulator');

$user = $userManipulator->create( 'username', 'password', 'email', true, true);
...