removed encoder, set hasher

This commit is contained in:
tracer 2021-06-13 15:16:03 +02:00
parent f7109bbd02
commit a5e665cbe4

View File

@ -29,13 +29,13 @@ class UserCrudController extends AbstractCrudController
}
/**
* @var UserPasswordEncoderInterface
* @var UserPasswordHasherInterface
*/
private $passwordHasher;
private UserPasswordHasherInterface $passwordHasher;
/**
* @var Security
*/
private $security;
private Security $security;
/**
* UserCrudController constructor.
@ -61,7 +61,6 @@ class UserCrudController extends AbstractCrudController
}
/**
* @param string $pageName
*
@ -69,7 +68,6 @@ class UserCrudController extends AbstractCrudController
*/
public function configureFields(string $pageName): iterable
{
//$id = TextField::new('id')->
$username = TextField::new('username');
$email = TextField::new('email');
$firstName = TextField::new('firstName');
@ -80,34 +78,31 @@ class UserCrudController extends AbstractCrudController
$roles = ChoiceField::new('roles', 'Roles')
->allowMultipleChoices()
->autocomplete()
->setChoices([ 'User' => 'ROLE_USER',
'Admin' => 'ROLE_ADMIN',
'SuperAdmin' => 'ROLE_SUPER_ADMIN']
->setChoices([
'User' => 'ROLE_USER',
'Admin' => 'ROLE_ADMIN',
'SuperAdmin' => 'ROLE_SUPER_ADMIN']
);
$password = TextField::new('password')
->setFormType(PasswordType::class)
->setFormTypeOption('empty_data', '')
->setRequired(false)
->setHelp('Leave blank to keep the current password');
switch ($pageName) {
case Crud::PAGE_INDEX:
return [ $username, $firstName, $lastName, $email, $lastLoginAt ];
break;
return [$username, $firstName, $lastName, $email, $lastLoginAt];
case Crud::PAGE_DETAIL:
return [ $username, $firstName, $lastName, $email, $lastLoginAt, $createdAt, $roles, $isVerified ];
break;
return [$username, $firstName, $lastName, $email, $lastLoginAt, $createdAt, $roles, $isVerified];
case Crud::PAGE_NEW:
return [
$password,
];
break;
case Crud::PAGE_EDIT:
return [ $username, $password, $firstName, $lastName, $email, $lastLoginAt, $roles, $isVerified ];
break;
return [$username, $password, $firstName, $lastName, $email, $lastLoginAt, $roles, $isVerified];
}
return [];
}
/**
@ -117,17 +112,17 @@ class UserCrudController extends AbstractCrudController
*/
public function updateEntity(EntityManagerInterface $entityManager, $entityInstance): void
{
// set new password with encoder interface
// set new password with hash interface
if (method_exists($entityInstance, 'setPassword')) {
$plainPassword = trim($this->get('request_stack')->getCurrentRequest()->request->all('User')['password']);
// do nothing if no password is entered
if (isset($plainPassword) === true && $plainPassword === '') {
$entityInstance->setPassword($this->password);
} else {
$user = new User();
$encodedPassword = $this->passwordHasher->hashPassword($user, $plainPassword);
$entityInstance->setPassword($encodedPassword);
$hashedPassword = $this->passwordHasher->hashPassword($user, $plainPassword);
$entityInstance->setPassword($hashedPassword);
}
}