@maximrabotaet

Как в symfony 3.4 получить или изменить пароль пользователя (FOSUserBundle)?

Здравствуйте!

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

Я установил и настроил FOSUserBundle, но при попытке изменить plainPassword вылетает ошибка:
An exception occurred while executing 'UPDATE fos_user SET pass = ?, password = ? WHERE id = ?' with params [null, "$2y$13$xfuD.3aPBh0oSNn2eCPf2eylUnM6807jFFgwfhYvkMnLTAZ9BIH1.", 5]:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'pass' cannot be null


форма:
class UserType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('enabled', null, [
                'required' => false,
                'label' => 'Актианый',
            ])
            ->add('username')
            ->add('email')
//            ->add('password')
            ->add('plainPassword')
            ->add('last_login', DateTimeType::class)
            ->add('roles', ChoiceType::class,
                [
                    'label' => 'Группа',
                    'multiple' => true,
                    'choices'  => [
                        'Зарегистрированный пользователь' => 'ROLE_USER',
                        'Администратор' => 'ROLE_SUPER_ADMIN',
                        ]
                ]
            )
        ;
    }

    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'AppBundle\Entity\User'
        ));
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'appbundle_user';
    }
}


В идеале, мне нужно написать свой шифровальщик и дешифровальщик, чтобы я мог получить и изменить пароль любого пользователя.
Или хотя бы сделать так чтобы пароль хранился в бд в незашифрованном виде.
Ну и соответственно чтобы авторизация и регистрация у FOSUserBundle не слетела.

Подскажите как лучше это реализовать?
Как мне менять пароли?

Спасибо!
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы