hydra-sql/src/Controller/MainController.php

59 lines
1.7 KiB
PHP
Raw Normal View History

2022-04-07 11:49:17 +02:00
<?php
namespace App\Controller;
2022-05-03 08:54:45 +02:00
use App\Entity\User;
use App\Hydra\Client;
use App\Hydra\HydraService;
2022-04-07 11:49:17 +02:00
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\RedirectResponse;
2022-05-04 17:13:04 +02:00
use Symfony\Component\HttpFoundation\Request;
2023-11-02 08:37:15 +01:00
use Symfony\Component\HttpFoundation\Response;
2022-05-04 17:13:04 +02:00
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Routing\Annotation\Route;
2022-04-07 11:49:17 +02:00
class MainController extends AbstractController
{
public HydraService $hydra;
public Client $client;
public SessionInterface $session;
2022-04-07 11:49:17 +02:00
public function __construct(SessionInterface $session, HydraService $hydra, Client $client)
2022-05-03 08:54:45 +02:00
{
$this->session = $session;
$this->client = $client;
$this->hydra = $hydra;
2022-05-03 08:54:45 +02:00
}
#[Route('/', name: 'app_home')]
public function home(Request $request)
2022-05-03 08:54:45 +02:00
{
return $this->hydra->handleLoginRequest($request);
2022-05-03 08:54:45 +02:00
}
2023-11-02 08:37:15 +01:00
#[Route('/health', name: 'health')]
public function health()
{
return new Response('healthy', 200);
}
#[Route('/connect/login-accept', name: 'app_login_accept')]
public function loginAccept(Request $request)
2022-05-03 08:54:45 +02:00
{
/** @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']);
2022-05-03 08:54:45 +02:00
}
#[Route('/connect/consent', name: 'app_consent')]
2022-05-03 08:54:45 +02:00
public function consent(Request $request)
{
return $this->hydra->handleConsentRequest($request);
2022-05-03 15:09:42 +02:00
}
2022-05-04 17:13:04 +02:00
}