'Unauthorized']); exit; } $user = trim((string)($_GET['user'] ?? '')); try { $ctrl = new AclAdminController(); $grants = $ctrl->getUserGrants($user); echo json_encode(['grants' => $grants], JSON_UNESCAPED_SLASHES); } catch (InvalidArgumentException $e) { http_response_code(400); echo json_encode(['error' => $e->getMessage()]); } catch (Throwable $e) { http_response_code(500); echo json_encode(['error' => 'Failed to load grants', 'detail' => $e->getMessage()]); }