hydra-sql/src/Controller/MainController.php

58 lines
1.6 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;
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")
2022-05-03 08:54:45 +02:00
*/
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
}
/**
* @Route("/connect/login-accept", name="app_login_accept")
2022-05-03 08:54:45 +02:00
*/
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
}