<?php
namespace App\Controller;
use App\Entity\KcAttributeKey;
use App\Entity\KcUser;
use App\Service\KeycloakClientFactory;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
{
private $entityManager;
public function __construct(
EntityManagerInterface $entityManager,
)
{
$this->entityManager = $entityManager;
}
#[Route('/', name: 'index')]
public function index(): Response
{
return $this->redirectToRoute('login');
}
#[Route('/dump/{currentRequest}', name: 'dump')]
#[IsGranted('ROLE_TALPAWORLD')]
public function dump(KeycloakClientFactory $keycloakClientFactory, $currentRequest): Response
{
return $this->render('dump.html.twig', ([
'dump' => [
'dump' => $currentRequest,
]
]));
$dump = [];
/*
$requestData = [
'realm' => '164951-test',
'username' => $kcUser->getUsername(),
'exact' => 'true',
'briefRepresentation' => true,
'max' => 1,
];
$dump = $keycloakClientFactory->getKeycloakResponse($this->getUser()->getRealm(), 'getUsers', $requestData);
*/
$realm = $this->getUser()->getRealm();
$entity = $this->entityManager->getRepository(KcUser::class)->findOneBy(['realm' => $realm, 'username' => 'tobi']);
//$defaultAttributesKeys = array_column($this->entityManager->getRepository(KcAttributeKey::class)->findBy(['realm' => $realm, 'mandatory' => true]), 'attributeKey');
$defaultAttributesKeys = $this->entityManager->getRepository(KcAttributeKey::class)->findBy(['realm' => $realm, 'mandatory' => true]);
$defaultAttributesKeysArray = [];
foreach ($defaultAttributesKeys as $defaultAttributesKey) {
$defaultAttributesKeysArray[$defaultAttributesKey->getAttributeKey()] = $defaultAttributesKey->getAttributeKey();
}
$diffArray = array_diff_key($defaultAttributesKeys, $entity->getKcUserAttributes()->toArray());
return $this->render('dump.html.twig', ([
'dump' => [
'defaultAttributesKeys' => $defaultAttributesKeysArray,
'diffArray' => $diffArray,
]
]));
}
}