src/Controller/API/APIUserController.php line 62

  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: JMR
  5.  * Date: 04/11/2024
  6.  * Time: 15:42
  7.  */
  8. namespace App\Controller\API;
  9. use App\Entity\SystemeClient;
  10. use App\Repository\CamionRepository;
  11. use App\Repository\SystemeClientRepository;
  12. use App\Repository\UserRepository;
  13. use ContainerDxZtSzB\getCache_SecurityExpressionLanguageService;
  14. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  15. use Symfony\Component\HttpFoundation\JsonResponse;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use Symfony\Component\HttpFoundation\Request;
  18. use Lexik\Bundle\JWTAuthenticationBundle\Services\JWTTokenManagerInterface;
  19. use Symfony\Component\Security\Core\User\UserProviderInterface;
  20. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  21. use Symfony\Component\Security\Core\Security;
  22. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  23. #[Route('/api_user'name'api_user')]
  24. class APIUserController extends AbstractController
  25. {
  26.     private $security;
  27.     public function __construct(Security $security)
  28.     {
  29.         $this->security $security;
  30.     }
  31.     #[Route('/update_mdp/{mdp}'name'get_user_update_mdp'methods: ['GET'])]
  32.     public function updateMdpRequest $request,$mdpUserRepository $userRepositoryUserPasswordHasherInterface $passwordHasher): JsonResponse
  33.     {
  34.         $user $this->security->getUser();
  35.         if (!$user) {
  36.             return $this->json(['error' => 'User not authenticated'], 401);
  37.         }
  38.         $return = array('valide'=>0);
  39.         if($mdp!=null) {
  40.             $hashedPassword $passwordHasher->hashPassword(
  41.                 $user,
  42.                 $mdp
  43.             );
  44.             $user->setPassword($hashedPassword);
  45.             $userRepository->save($usertrue);
  46.             $return['valide']=1;
  47.         }
  48.         return $this->json($return);
  49.     }
  50.     #[Route('/get_user_by_systeme_client/{idSystemeClient}'name'get_user_get_user_by_systeme'methods: ['GET'])]
  51.     public function getUserBySystemeClientAction(Request $request,$idSystemeClientSystemeClientRepository $systemeClientRepositoryUserRepository $userRepository)
  52.     {
  53.         $return = array('valide'=>0,'hydra:member'=>array(),'nomClient'=>'','logoClient'=>'');
  54.         $SC $systemeClientRepository->find($idSystemeClient);
  55.         $users $userRepository->findAllChauffeurOrderByNomSansPneu($SC);
  56.         if(is_object($SC)) {
  57.             $return['nomClient'] = $SC->getNom();
  58.             //$return['logoClient'] = $SC->getLogo();
  59.             if (!empty($users)) {
  60.                 foreach ($users as $user) {
  61.                     $userRole = array();
  62.                     if($user->getRoleAdmin()==true)
  63.                     {
  64.                         $userRole[] = 'ROLE_ADMIN';
  65.                     }
  66.                     else if($user->getRoleChauffeur()==true)
  67.                     {
  68.                         $userRole[] = 'ROLE_CHAUFFEUR';
  69.                     }
  70.                     else
  71.                     {
  72.                         $userRole[] = 'ROLE_USER';
  73.                     }
  74.                     $return['hydra:member'][] = array('id' => $user->getId(), 'email' => $user->getEmail(),
  75.                         'roles' => $userRole'@id' => $_SERVER['SCRIPT_NAME'] . '/api/users/' $user->getId(),
  76.                         'name' => $user->getInitiales()
  77.                     );
  78.                 }
  79.                 $return['valide'] = 1;
  80.             }
  81.         }
  82.         return new JsonResponse($return);
  83.     }
  84. }