add information on oauth2/userinfo
This commit is contained in:
parent
f89bd101fe
commit
9f430a3656
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Repository\UsersOrganizationsRepository;
|
||||
use App\Service\AccessTokenService;
|
||||
use App\Service\LoggerService;
|
||||
use App\Service\UserService;
|
||||
|
|
@ -20,18 +21,39 @@ class OAuth2Controller extends AbstractController
|
|||
{
|
||||
|
||||
|
||||
public function __construct(private readonly LoggerService $loggerService, private readonly UserService $userService)
|
||||
public function __construct(private readonly LoggerService $loggerService, private readonly UserService $userService,
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
#[Route('/oauth2/userinfo', name: 'userinfo', methods: ['GET'])]
|
||||
public function userinfo(Request $request): JsonResponse
|
||||
public function userinfo(Request $request, UsersOrganizationsRepository $uoRepository): JsonResponse
|
||||
{
|
||||
$user = $this->getUser();
|
||||
if (!$user) {
|
||||
$this->loggerService->logAccessDenied($user->getId());
|
||||
return new JsonResponse(['error' => 'Unauthorized'], 401);
|
||||
}
|
||||
$uos = $uoRepository->findBy(['users' => $user]);
|
||||
|
||||
$result = [];
|
||||
foreach ($uos as $uo) {
|
||||
$result[] = ['organization' => [
|
||||
'id' => $uo->getOrganization()->getId(),
|
||||
'name' => $uo->getOrganization()->getName(),
|
||||
'role' => $uo->getRole()->getName()
|
||||
]
|
||||
];
|
||||
if ($uo->getRole()->getName() === "ADMIN") {
|
||||
$projets = $uo->getOrganization()->getProjects()->toArray();
|
||||
$result[count($result) - 1]['organization']['projects'] = array_map(function ($projet) {
|
||||
return [
|
||||
'id' => $projet->getId(),
|
||||
// 'name' => $projet->getName()
|
||||
];
|
||||
}, $projets);
|
||||
}
|
||||
}
|
||||
|
||||
$this->loggerService->logUserAction($user->getId(), $user->getId(), 'Accessed userinfo endpoint');
|
||||
return new JsonResponse([
|
||||
|
|
@ -39,6 +61,7 @@ class OAuth2Controller extends AbstractController
|
|||
'name' => $user->getName(),
|
||||
'email' => $user->getEmail(),
|
||||
'surname' => $user->getSurname(),
|
||||
'uos' => $result
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -64,7 +87,8 @@ class OAuth2Controller extends AbstractController
|
|||
}
|
||||
|
||||
#[Route(path: '/oauth2/revoke_tokens', name: 'revoke_tokens', methods: ['POST'])]
|
||||
public function revokeTokens(Security $security, Request $request, AccessTokenService $accessTokenService, LoggerInterface $logger): Response{
|
||||
public function revokeTokens(Security $security, Request $request, AccessTokenService $accessTokenService, LoggerInterface $logger): Response
|
||||
{
|
||||
//Check if the user have valid access token
|
||||
$data = json_decode($request->getContent(), true);
|
||||
$userIdentifier = $data['user_identifier'];
|
||||
|
|
|
|||
Loading…
Reference in New Issue