diff --git a/src/Controller/OrganizationController.php b/src/Controller/OrganizationController.php index 2df47af..29fd16b 100644 --- a/src/Controller/OrganizationController.php +++ b/src/Controller/OrganizationController.php @@ -9,6 +9,7 @@ use App\Entity\User; use App\Entity\UserOrganizatonApp; use App\Entity\UsersOrganizations; use App\Form\OrganizationForm; +use App\Repository\OrganizationsRepository; use App\Service\ActionService; use App\Service\OrganizationsService; use App\Service\UserOrganizationService; @@ -29,9 +30,12 @@ class OrganizationController extends AbstractController private const ACCESS_DENIED = 'Access denied'; - public function __construct(private readonly EntityManagerInterface $entityManager, - private readonly UserService $userService, - private readonly OrganizationsService $organizationsService, private readonly ActionService $actionService, private readonly UserOrganizationService $userOrganizationService) + public function __construct(private readonly EntityManagerInterface $entityManager, + private readonly UserService $userService, + private readonly OrganizationsService $organizationsService, + private readonly ActionService $actionService, + private readonly UserOrganizationService $userOrganizationService, + private readonly OrganizationsRepository $organizationsRepository,) { } @@ -42,7 +46,7 @@ class OrganizationController extends AbstractController $user = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if ($this->isGranted("ROLE_SUPER_ADMIN")) { - $organizations = $this->entityManager->getRepository(Organizations::class)->findBy(['isDeleted' => false]); + $organizations = $this->organizationsRepository->findBy(['isDeleted' => false]); } else { @@ -56,18 +60,18 @@ class OrganizationController extends AbstractController $organizations[] = $uo->getOrganization(); } } - if(count($organizations) === 1 && $organizations[0]->isActive() === true){ + if (count($organizations) === 1 && $organizations[0]->isActive() === true) { return $this->redirectToRoute('organization_show', ['id' => $organizations[0]->getId()]); } } // Map the entities for tabulator - $organizationsData = array_map(function($org) { + $organizationsData = array_map(function ($org) { return [ 'id' => $org->getId(), 'name' => $org->getName(), 'email' => $org->getEmail(), - 'logoUrl' => $org->getLogoUrl() ? $org->getLogoUrl() : null, // or prepend base URL if needed + 'logoUrl' => $org->getLogoUrl() ? $org->getLogoUrl() : null, 'active' => $org->isActive(), 'showUrl' => $this->generateUrl('organization_show', ['id' => $org->getId()]), ]; @@ -89,7 +93,7 @@ class OrganizationController extends AbstractController if ($form->isSubmitted() && $form->isValid()) { $logoFile = $form->get('logoUrl')->getData(); if ($logoFile) { - $this->organizationService->handleLogo($organization, $logoFile); + $this->organizationsService->handleLogo($organization, $logoFile); } try { $this->entityManager->persist($organization); @@ -116,7 +120,7 @@ class OrganizationController extends AbstractController { $this->denyAccessUnlessGranted('ROLE_ADMIN'); $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); - $organization = $this->entityManager->getRepository(Organizations::class)->find($id); + $organization = $this->organizationsRepository->find($id); if (!$organization) { $this->addFlash('error', self::NOT_FOUND); return $this->redirectToRoute('organization_index'); @@ -162,7 +166,7 @@ class OrganizationController extends AbstractController public function view($id): Response { $this->denyAccessUnlessGranted('ROLE_ADMIN'); - $organization = $this->entityManager->getRepository(Organizations::class)->find($id); + $organization = $this->organizationsRepository->find($id); $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); if (!$organization) { $this->addFlash('error', self::NOT_FOUND); @@ -204,7 +208,7 @@ class OrganizationController extends AbstractController 'users' => $users, 'applications' => $apps, 'activities' => $activities, - ]); + ]); } #[Route(path: '/delete/{id}', name: 'delete', methods: ['POST'])] @@ -212,7 +216,7 @@ class OrganizationController extends AbstractController { $this->denyAccessUnlessGranted("ROLE_ADMIN"); $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); - $organization = $this->entityManager->getRepository(Organizations::class)->find($id); + $organization = $this->organizationsRepository->find($id); if (!$organization) { throw $this->createNotFoundException(self::NOT_FOUND); } @@ -227,25 +231,27 @@ class OrganizationController extends AbstractController } #[Route(path: '/deactivate/{id}', name: 'deactivate', methods: ['POST'])] - public function deactivate($id): Response{ - $this->denyAccessUnlessGranted("ROLE_SUPER_ADMIN"); - $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); - $organization = $this->entityManager->getRepository(Organizations::class)->find($id); - if (!$organization) { - throw $this->createNotFoundException(self::NOT_FOUND); - } - $organization->setIsActive(false); - $this->userOrganizationService->deactivateAllUserOrganizationLinks($actingUser, null, $organization); - $this->entityManager->persist($organization); - $this->actionService->createAction("Deactivate Organization", $actingUser, $organization, $organization->getName()); - return $this->redirectToRoute('organization_index'); + public function deactivate($id): Response + { + $this->denyAccessUnlessGranted("ROLE_SUPER_ADMIN"); + $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); + $organization = $this->organizationsRepository->find($id); + if (!$organization) { + throw $this->createNotFoundException(self::NOT_FOUND); + } + $organization->setIsActive(false); + $this->userOrganizationService->deactivateAllUserOrganizationLinks($actingUser, null, $organization); + $this->entityManager->persist($organization); + $this->actionService->createAction("Deactivate Organization", $actingUser, $organization, $organization->getName()); + return $this->redirectToRoute('organization_index'); } #[Route(path: '/activate/{id}', name: 'activate', methods: ['POST'])] - public function activate($id): Response{ + public function activate($id): Response + { $this->denyAccessUnlessGranted("ROLE_SUPER_ADMIN"); $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); - $organization = $this->entityManager->getRepository(Organizations::class)->find($id); + $organization = $this->organizationsRepository->find($id); if (!$organization) { throw $this->createNotFoundException(self::NOT_FOUND); } @@ -271,7 +277,7 @@ class OrganizationController extends AbstractController $user = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); - $qb = $this->entityManager->getRepository(Organizations::class)->createQueryBuilder('o') + $qb = $this->organizationsRepository->createQueryBuilder('o') ->where('o.isDeleted = :del')->setParameter('del', false); // // Example: apply filters (basic equals/like) @@ -303,7 +309,7 @@ class OrganizationController extends AbstractController $rows = $qb->setFirstResult($offset)->setMaxResults($size)->getQuery()->getResult(); // Map to array - $data = array_map(function(Organizations $org) { + $data = array_map(function (Organizations $org) { return [ 'id' => $org->getId(), 'name' => $org->getName(),