feat : Ajout expression de réecriture du subject paramétrable
This commit is contained in:
@ -5,7 +5,9 @@ namespace App\Controller;
|
||||
use App\Entity\User;
|
||||
use App\Hydra\Client;
|
||||
use App\Hydra\HydraService;
|
||||
use App\SQLLogin\SQLLoginRequest;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
@ -41,7 +43,7 @@ class MainController extends AbstractController
|
||||
}
|
||||
|
||||
#[Route('/connect/login-accept', name: 'app_login_accept', methods: ['GET'])]
|
||||
public function loginAccept(Request $request): RedirectResponse
|
||||
public function loginAccept(Request $request, SQLLoginRequest $sqlLoginRequest): RedirectResponse
|
||||
{
|
||||
$user = $this->getUser();
|
||||
|
||||
@ -52,8 +54,18 @@ class MainController extends AbstractController
|
||||
if (!$challenge) {
|
||||
return new RedirectResponse($this->getParameter('issuer_url'));
|
||||
}
|
||||
|
||||
$subject = $user->getLogin();
|
||||
|
||||
$subjectRewriteExpression = $sqlLoginRequest->getSubjectRewriteExpression();
|
||||
if (null != $subjectRewriteExpression) {
|
||||
$expressionLanguage = new ExpressionLanguage();
|
||||
|
||||
$subject = $expressionLanguage->evaluate($subjectRewriteExpression, $user->getAttributes());
|
||||
}
|
||||
|
||||
$loginAcceptRes = $this->client->acceptLoginRequest($challenge, [
|
||||
'subject' => $user->getLogin(),
|
||||
'subject' => $subject,
|
||||
'remember' => true,
|
||||
])->toArray();
|
||||
|
||||
|
Reference in New Issue
Block a user