php-cs-fixer

This commit is contained in:
2022-05-04 17:13:04 +02:00
parent 16a2c38e97
commit e7c9feac70
3 changed files with 260 additions and 167 deletions

View File

@ -1,18 +1,17 @@
<?php
namespace App\Controller;
use App\Entity\User;
use App\Form\UserType;
use App\Services\PdoServices;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\HttpClient\HttpClientInterface;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Exception\BadRequestException;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Contracts\HttpClient\HttpClientInterface;
class MainController extends AbstractController
{
@ -20,7 +19,7 @@ class MainController extends AbstractController
* @var Session
*/
private $session;
/**
* @var UrlGeneratorInterface
*/
@ -47,10 +46,10 @@ class MainController extends AbstractController
{
$challenge = $request->query->get('login_challenge');
// S'il n'y a pas de challenge, on déclenche une bad request
if(!$challenge){
if (!$challenge) {
throw new BadRequestException('pas de challenge');
}
//On vérifie que la requête d'identification provient bien de hydra
// On vérifie que la requête d'identification provient bien de hydra
$response = $this->client->request('GET', $this->getParameter('url_login_challenge').$challenge, [
'headers' => [
'Content-Type: application/json',
@ -71,57 +70,56 @@ class MainController extends AbstractController
*/
public function oauth(Request $request)
{
if( $request->headers->get('referer') !== $this->router->generate('oauth_login', [], 0) && !in_array($request->headers->get('referer'), $this->getParameter('urlIssuer'))){
if ($request->headers->get('referer') !== $this->router->generate('oauth_login', [], 0) && !in_array($request->headers->get('referer'), $this->getParameter('urlIssuer'))) {
throw new BadRequestException('Vous devez passer par le issuer pour vous connecter');
}
$user = new User();
$loginForm = $this->createForm(UserType::class, $user);
$loginForm->handleRequest($request);
if($loginForm->isSubmitted() && $loginForm->isValid()){
if ($loginForm->isSubmitted() && $loginForm->isValid()) {
$email = $loginForm->get('email')->getData();
try {
// requête préparée
$datas = $this->pdoServices->fetchDatas($email);
if(!$datas){
if (!$datas) {
// Si le hash du password n'est pas trouvé, c'est que l'email n'existe pas, on retourne la page de login avec une erreur
return $this->render('login.html.twig', [
"form" => $loginForm->createView(),
"error_mail" => "mail non trouvé",
'form' => $loginForm->createView(),
'error_mail' => 'mail non trouvé',
]);
}
$hashPassword = $datas[$this->getParameter('passwordColumnName')];
$password = $loginForm->get('password')->getData();
if($this->pdoServices->verifyPassword($password, $hashPassword)){
if ($this->pdoServices->verifyPassword($password, $hashPassword)) {
// On défait la mot de passe qui ne servira plus
unset($datas[$this->getParameter('passwordColumnName')]);
$this->session->set('datas', $datas);
$response = $this->client->request('PUT', $this->getParameter('url_login_challenge_accept').$this->session->get('challenge'), [
'json' => [
'subject' => $email,
'acr'=> 'string'
'acr' => 'string',
],
]);
// On initie l'acceptation du login challenge émis par hydra et on récupère l'url de redirection
$redirect_to = $response->toArray()['redirect_to'];
return $this->redirect($redirect_to, 301);
}else{
} else {
return $this->render('login.html.twig', [
'form'=>$loginForm->createView(),
"error_password"=> "Le mot de passe est incorrect"
'form' => $loginForm->createView(),
'error_password' => 'Le mot de passe est incorrect',
]);
}
}catch (\Exception $e){
} catch (\Exception $e) {
dd($e);
}
}
return $this->render('login.html.twig', [
'form'=>$loginForm->createView(),
'form' => $loginForm->createView(),
]);
}
@ -141,7 +139,7 @@ class MainController extends AbstractController
'Content-Type: application/json',
],
]);
if(200!== $response->getStatusCode()){
if (200 !== $response->getStatusCode()) {
$this->session->clear();
throw new BadRequestException("Le challenge n'est pas authorisé");
}
@ -161,7 +159,6 @@ class MainController extends AbstractController
$redirect_to = $response->toArray()['redirect_to'];
return $this->redirect($redirect_to, 301);
}
/**
@ -173,4 +170,4 @@ class MainController extends AbstractController
return $this->redirect($this->getParameter('urlLogoutSuccess'));
}
}
}