From 0a88ad0bde2fc64e1b1c1376510af02d9ad4af45 Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 2 Feb 2026 09:10:30 +0100 Subject: [PATCH] fix organization not loading --- assets/controllers/organization_controller.js | 3 ++- src/Controller/OrganizationController.php | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/assets/controllers/organization_controller.js b/assets/controllers/organization_controller.js index 8024cdb..baef575 100644 --- a/assets/controllers/organization_controller.js +++ b/assets/controllers/organization_controller.js @@ -42,7 +42,8 @@ export default class extends Controller { ajaxResponse: (url, params, response) => response, paginationDataSent: { page: "page", size: "size" }, - paginationDataReceived: { last_page: "last_page" }, + paginationDataReceived: { last_page: "last_page", + data: "data"}, filterMode: "remote", ajaxURLGenerator: function(url, config, params) { diff --git a/src/Controller/OrganizationController.php b/src/Controller/OrganizationController.php index d12de12..7d47d9f 100644 --- a/src/Controller/OrganizationController.php +++ b/src/Controller/OrganizationController.php @@ -302,7 +302,7 @@ class OrganizationController extends AbstractController // API endpoint to fetch organization data for Tabulator #[Route(path: '/data/{id}', name: 'data', methods: ['GET'])] - public function data(Request $request): JsonResponse + public function data(Request $request, int $id): JsonResponse { $this->denyAccessUnlessGranted('ROLE_ADMIN'); @@ -324,15 +324,24 @@ class OrganizationController extends AbstractController $qb->andWhere('o.email LIKE :email') ->setParameter('email', '%' . $filters['email'] . '%'); } - if(!$this->isGranted('ROLE_SUPER_ADMIN')) { + if (!$this->isGranted('ROLE_SUPER_ADMIN')) { $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); $uo = $this->entityManager->getRepository(UsersOrganizations::class)->findBy(['users' => $actingUser]); + + $allowedOrgIds = []; foreach ($uo as $item) { - if($this->userService->isAdminOfOrganization($item->getOrganization())) { - $qb->andWhere('o.id = :orgId') - ->setParameter('orgId', $item->getOrganization()->getId()); + if ($this->userService->isAdminOfOrganization($item->getOrganization())) { + $allowedOrgIds[] = $item->getOrganization()->getId(); } } + + // If user has no organizations, ensure query returns nothing (or handle typically) + if (empty($allowedOrgIds)) { + $qb->andWhere('1 = 0'); // Force empty result + } else { + $qb->andWhere('o.id IN (:orgIds)') + ->setParameter('orgIds', $allowedOrgIds); + } }