This commit is contained in:
Jérémy Guillot
2024-06-03 17:36:22 +02:00
commit bddcdd6823
73 changed files with 13150 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
<?php
namespace App\State;
use ApiPlatform\Metadata\Operation;
use ApiPlatform\State\ProcessorInterface;
use App\Entity\User;
use Symfony\Component\DependencyInjection\Attribute\AsDecorator;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
#[AsDecorator('api_platform.doctrine.orm.state.persist_processor')]
readonly class UserHashPasswordProcessor implements ProcessorInterface
{
public function __construct(private ProcessorInterface $decoratedProcessor, private UserPasswordHasherInterface $passwordHasher)
{
}
public function process(mixed $data, Operation $operation, array $uriVariables = [], array $context = []): mixed
{
if($data instanceof User && $data->getPlainPassword() !== null) {
$data->setPassword($this->passwordHasher->hashPassword($data, $data->getPlainPassword()));
}
$this->decoratedProcessor->process($data, $operation, $uriVariables, $context);
return $data;
}
}