Some checks reported warnings
Cadoles/hydra-sql/pipeline/pr-develop This commit is unstable
61 lines
1.8 KiB
PHP
61 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Controller;
|
|
|
|
use App\Entity\User;
|
|
use App\Hydra\Client;
|
|
use App\Hydra\HydraService;
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
use Symfony\Component\HttpFoundation\RedirectResponse;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
|
use Symfony\Component\Routing\Annotation\Route;
|
|
|
|
class MainController extends AbstractController
|
|
{
|
|
public HydraService $hydra;
|
|
public Client $client;
|
|
public SessionInterface $session;
|
|
|
|
public function __construct(SessionInterface $session, HydraService $hydra, Client $client)
|
|
{
|
|
$this->session = $session;
|
|
$this->client = $client;
|
|
$this->hydra = $hydra;
|
|
}
|
|
|
|
#[Route('/', name: 'app_home')]
|
|
public function home(Request $request)
|
|
{
|
|
return $this->hydra->handleLoginRequest($request);
|
|
}
|
|
/*
|
|
* Route de Healthcheck (notament pour kubernetes)
|
|
*/
|
|
#[Route('/health', name: 'health')]
|
|
public function health(Request $request)
|
|
{
|
|
return new Response('healthy', 200);
|
|
}
|
|
|
|
#[Route('/connect/login-accept', name: 'app_login_accept')]
|
|
public function loginAccept(Request $request)
|
|
{
|
|
/** @var User */
|
|
$user = $this->getUser();
|
|
$loginAcceptRes = $this->client->acceptLoginRequest($this->session->get('challenge'), [
|
|
'subject' => $user->getLogin(),
|
|
'remember' => true,
|
|
])->toArray();
|
|
|
|
return new RedirectResponse($loginAcceptRes['redirect_to']);
|
|
}
|
|
|
|
#[Route('/connect/consent', name: 'app_consent')]
|
|
public function consent(Request $request)
|
|
{
|
|
return $this->hydra->handleConsentRequest($request);
|
|
}
|
|
}
|