From 003ee4099220b0574d8cdb3a272c76446449e646 Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 27 Oct 2025 12:20:03 +0100 Subject: [PATCH] refactor --- src/Controller/UserController.php | 62 ++++++++++++++++--------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/src/Controller/UserController.php b/src/Controller/UserController.php index 0a36e36..6470579 100644 --- a/src/Controller/UserController.php +++ b/src/Controller/UserController.php @@ -3,22 +3,20 @@ namespace App\Controller; use App\Entity\Apps; -use App\Entity\Organizations; use App\Entity\Roles; use App\Entity\User; use App\Entity\UserOrganizatonApp; use App\Entity\UsersOrganizations; use App\Form\UserForm; +use App\Repository\OrganizationsRepository; +use App\Repository\UserRepository; +use App\Repository\UsersOrganizationsRepository; use App\Service\ActionService; -use App\Service\AwsService; -use App\Service\OrganizationsService; use App\Service\UserOrganizationAppService; use App\Service\UserOrganizationService; use App\Service\UserService; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; -use Symfony\Component\Asset\Packages; -use Symfony\Component\HttpFoundation\File\Exception\FileException; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -35,7 +33,10 @@ class UserController extends AbstractController private readonly UserService $userService, private readonly ActionService $actionService, private readonly UserOrganizationAppService $userOrganizationAppService, - private readonly UserOrganizationService $userOrganizationService, private readonly OrganizationsService $organizationsService, + private readonly UserOrganizationService $userOrganizationService, + private readonly UserRepository $userRepository, + private readonly UsersOrganizationsRepository $uoRepository, + private readonly OrganizationsRepository $organizationRepository, ) { } @@ -48,9 +49,9 @@ class UserController extends AbstractController $user = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->isGranted('ROLE_SUPER_ADMIN')) { - $uo = $this->entityManager->getRepository(UsersOrganizations::class)->findUsersWithOrganization(); + $uo = $this->uoRepository->findUsersWithOrganization(); $noOrgUsers = $this->userService->formatNoOrgUsersAsAssoc( - $this->entityManager->getRepository(User::class)->findUsersWithoutOrganization()); + $this->userRepository->findUsersWithoutOrganization()); $usersByOrganization = $this->userService->groupByOrganization($uo); $usersByOrganization += $noOrgUsers; @@ -72,18 +73,18 @@ class UserController extends AbstractController $this->denyAccessUnlessGranted('ROLE_USER'); $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->userService->hasAccessTo($actingUser)) { - $user = $this->entityManager->getRepository(User::class)->find($id); + $user = $this->userRepository->find($id); try { $orgId = $request->query->get('organizationId'); if ($orgId) { - $orgs = $this->entityManager->getRepository(Organizations::class)->findBy(['id' => $orgId]); - $uo = $this->entityManager->getRepository(UsersOrganizations::class)->findBy(['users' => $user, 'organization' => $orgs]); + $orgs = $this->organizationRepository->findBy(['id' => $orgId]); + $uo = $this->uoRepository->findBy(['users' => $user, 'organization' => $orgs]); if (!$uo) { throw $this->createNotFoundException(self::NOT_FOUND); } $uoActive = $uo[0]->isActive(); } else { - $uo = $this->entityManager->getRepository(UsersOrganizations::class)->findBy(['users' => $user, 'isActive' => true]); + $uo = $this->uoRepository->findBy(['users' => $user, 'isActive' => true]); foreach ($uo as $u) { $orgs[] = $u->getOrganization(); } @@ -112,7 +113,7 @@ class UserController extends AbstractController $this->denyAccessUnlessGranted('ROLE_USER'); $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->userService->hasAccessTo($actingUser)) { - $user = $this->entityManager->getRepository(User::class)->find($id); + $user = $this->userRepository->find($id); if (!$user) { throw $this->createNotFoundException(self::NOT_FOUND); } @@ -130,7 +131,7 @@ class UserController extends AbstractController $this->entityManager->persist($user); $this->entityManager->flush(); if ($request->get('organizationId')) { - $org = $this->entityManager->getRepository(Organizations::class)->find($request->get('organizationId')); + $org = $this->organizationRepository->find($request->get('organizationId')); if ($org) { $this->actionService->createAction("Edit user information", $actingUser, $org, $user->getUserIdentifier()); } @@ -175,7 +176,7 @@ class UserController extends AbstractController //FOR TEST PURPOSES, SETTING A DEFAULT RANDOM PASSWORD $user->setPassword($this->userService->generateRandomPassword()); if ($orgId) { - $org = $this->entityManager->getRepository(Organizations::class)->find($orgId); + $org = $this->organizationRepository->find($orgId); if ($org) { $uo = new UsersOrganizations(); $uo->setUsers($user); @@ -208,13 +209,16 @@ class UserController extends AbstractController $this->denyAccessUnlessGranted('ROLE_ADMIN'); $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->userService->hasAccessTo($actingUser, true)) { - $user = $this->entityManager->getRepository(User::class)->find($id); + $user = $this->userRepository->find($id); if (!$user) { throw $this->createNotFoundException(self::NOT_FOUND); } $user->setIsActive(false); $user->setModifiedAt(new \DateTimeImmutable('now')); $this->userOrganizationService->deactivateAllUserOrganizationLinks($user, $actingUser); + if($this->userService->isUserConnected($user)){ + $this->userService->revokeUserTokens($user->getUserIdentifier()); + } $this->entityManager->persist($user); $this->entityManager->flush(); $this->actionService->createAction("Deactivate user", $actingUser, null, $user->getUserIdentifier()); @@ -231,7 +235,7 @@ class UserController extends AbstractController $this->denyAccessUnlessGranted('ROLE_ADMIN'); $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->userService->hasAccessTo($actingUser, true)) { - $user = $this->entityManager->getRepository(User::class)->find($id); + $user = $this->userRepository->find($id); if (!$user) { throw $this->createNotFoundException(self::NOT_FOUND); } @@ -254,15 +258,15 @@ class UserController extends AbstractController $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->userService->hasAccessTo($actingUser, true)) { $orgId = $request->get('organizationId'); - $org = $this->entityManager->getRepository(Organizations::class)->find($orgId); + $org = $this->organizationRepository->find($orgId); if (!$org) { throw $this->createNotFoundException(self::NOT_FOUND); } - $user = $this->entityManager->getRepository(User::class)->find($id); + $user = $this->userRepository->find($id); if (!$user) { throw $this->createNotFoundException(self::NOT_FOUND); } - $uo = $this->entityManager->getRepository(UsersOrganizations::class)->findOneBy(['users' => $user, + $uo = $this->uoRepository->findOneBy(['users' => $user, 'organization' => $org, 'isActive' => true]); if (!$uo) { @@ -287,15 +291,15 @@ class UserController extends AbstractController $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->userService->hasAccessTo($actingUser, true)) { $orgId = $request->get('organizationId'); - $org = $this->entityManager->getRepository(Organizations::class)->find($orgId); + $org = $this->organizationRepository->find($orgId); if (!$org) { throw $this->createNotFoundException(self::NOT_FOUND); } - $user = $this->entityManager->getRepository(User::class)->find($id); + $user = $this->userRepository->find($id); if (!$user) { throw $this->createNotFoundException(self::NOT_FOUND); } - $uo = $this->entityManager->getRepository(UsersOrganizations::class)->findOneBy(['users' => $user, + $uo = $this->uoRepository->findOneBy(['users' => $user, 'organization' => $org, 'isActive' => false]); if (!$uo) { @@ -317,7 +321,7 @@ class UserController extends AbstractController { $this->denyAccessUnlessGranted("ROLE_SUPER_ADMIN"); $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); - $user = $this->entityManager->getRepository(User::class)->find($id); + $user = $this->userRepository->find($id); if (!$user) { throw $this->createNotFoundException(self::NOT_FOUND); } @@ -388,7 +392,7 @@ class UserController extends AbstractController $page = max(1, (int)$request->query->get('page', 1)); $size = max(1, (int)$request->query->get('size', 10)); - $repo = $this->entityManager->getRepository(User::class); + $repo = $this->userRepository; // Base query: keep your constraints intact (isDeleted=false, isActive=true) $qb = $repo->createQueryBuilder('u') @@ -430,7 +434,7 @@ class UserController extends AbstractController { $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->userService->hasAccessTo($actingUser, true) && $this->isGranted("ROLE_ADMIN")) { - $totalUsers = $this->entityManager->getRepository(User::class)->count(['isDeleted' => false, 'isActive' => true]); + $totalUsers = $this->userRepository->count(['isDeleted' => false, 'isActive' => true]); return $this->render('user/indexTest.html.twig', [ 'users' => $totalUsers ]); @@ -448,7 +452,7 @@ class UserController extends AbstractController $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->userService->hasAccessTo($actingUser, true) && $this->isGranted("ROLE_ADMIN")) { $orgId = $request->query->get('orgId'); - $uos = $this->entityManager->getRepository(UsersOrganizations::class)->findBy(['organization' => $orgId], limit: 5, orderBy: ['createdAt' => 'DESC']); + $uos = $this->uoRepository->findBy(['organization' => $orgId], limit: 5, orderBy: ['createdAt' => 'DESC']); // Map to array (keep isConnected) @@ -483,7 +487,7 @@ class UserController extends AbstractController $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->userService->hasAccessTo($actingUser, true) && $this->isGranted("ROLE_ADMIN")) { $orgId = $request->query->get('orgId'); - $uos = $this->entityManager->getRepository(UsersOrganizations::class)->findBy(['organization' => $orgId]); + $uos = $this->uoRepository->findBy(['organization' => $orgId]); $roleAdmin = $this->entityManager->getRepository(Roles::class)->findOneBy(['name' => 'ADMIN']); $users = []; foreach ($uos as $uo) { @@ -533,7 +537,7 @@ class UserController extends AbstractController // $sorters = $request->query->all('sorters') ?? []; // $filters = $request->query->all('filters') ?? []; - $repo = $this->entityManager->getRepository(UsersOrganizations::class); + $repo = $this->uoRepository; // Base query $qb = $repo->createQueryBuilder('uo')