<?php
namespace App\EventSubscriber;
use ApiPlatform\Core\Api\IriConverterInterface;
use ApiPlatform\Core\EventListener\EventPriorities;
use App\Entity\Client;
use App\Entity\Colis;
use App\Entity\User;
use App\Exception\EntiteNotFoundException;
use App\Service\FileUploader;
use App\Service\Utils;
use Doctrine\Persistence\ManagerRegistry;
use Psr\Log\LoggerInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Event\ViewEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Vich\UploaderBundle\Storage\StorageInterface;
class UserSubscriber implements EventSubscriberInterface
{
private $managerRegistry;
private $passwordEncoder;
private $logger;
public function __construct(ManagerRegistry $managerRegistry,UserPasswordEncoderInterface $passwordEncoder, LoggerInterface $logger)
{
//dd('ici');
$this->managerRegistry = $managerRegistry;
$this->passwordEncoder = $passwordEncoder;
$this->logger = $logger;
}
public static function getSubscribedEvents()
{
return [
KernelEvents::VIEW => [
['processUserAdd', EventPriorities::PRE_WRITE],
],
];
}
public function processUserAdd(ViewEvent $event){
$user = $event->getControllerResult();
$method = $event->getRequest()->getMethod();
if (!$user instanceof User || Request::METHOD_POST !== $method ) {
return ;
}
$user->setPassword($this->passwordEncoder->encodePassword($user, $user->getPassword()));
}
}