Здравствуйте!
Мне нужно сделать список пользователей, где админ может редактировать любые данные этих пользователей включая пароли.
Я установил и настроил 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 не слетела.
Подскажите как лучше это реализовать?
Как мне менять пароли?
Спасибо!