From e1776d7994db35b8e348832cc1041c2f4bdc095d Mon Sep 17 00:00:00 2001 From: fbsanchez Date: Fri, 4 Feb 2022 13:26:03 +0100 Subject: [PATCH] removed collation from filtering --- .../godmode/agentes/modificar_agente.php | 84 +++++++------- pandora_console/mobile/operation/agents.php | 4 +- .../operation/agentes/estado_agente.php | 108 ++++++++---------- 3 files changed, 93 insertions(+), 103 deletions(-) diff --git a/pandora_console/godmode/agentes/modificar_agente.php b/pandora_console/godmode/agentes/modificar_agente.php index e2aca5017f..b74a4b64ee 100644 --- a/pandora_console/godmode/agentes/modificar_agente.php +++ b/pandora_console/godmode/agentes/modificar_agente.php @@ -374,23 +374,6 @@ echo ''; echo ''; echo ''; -$order_collation = ''; -switch ($config['dbtype']) { - case 'mysql': - $order_collation = ''; - $order_collation = 'COLLATE utf8_general_ci'; - break; - - case 'postgresql': - case 'oracle': - $order_collation = ''; - break; - - default: - // Default. - break; -} - $selected = true; $selectNameUp = false; $selectNameDown = false; @@ -405,7 +388,7 @@ switch ($sortField) { $selectRemoteUp = $selected; $order = [ 'field' => 'remote ', - 'field2' => 'nombre '.$order_collation, + 'field2' => 'nombre ', 'order' => 'ASC', ]; break; @@ -414,7 +397,7 @@ switch ($sortField) { $selectRemoteDown = $selected; $order = [ 'field' => 'remote ', - 'field2' => 'nombre '.$order_collation, + 'field2' => 'nombre ', 'order' => 'DESC', ]; break; @@ -430,8 +413,8 @@ switch ($sortField) { case 'up': $selectNameUp = $selected; $order = [ - 'field' => 'alias '.$order_collation, - 'field2' => 'alias '.$order_collation, + 'field' => 'alias ', + 'field2' => 'alias ', 'order' => 'ASC', ]; break; @@ -439,8 +422,8 @@ switch ($sortField) { case 'down': $selectNameDown = $selected; $order = [ - 'field' => 'alias '.$order_collation, - 'field2' => 'alias '.$order_collation, + 'field' => 'alias ', + 'field2' => 'alias ', 'order' => 'DESC', ]; break; @@ -457,7 +440,7 @@ switch ($sortField) { $selectOsUp = $selected; $order = [ 'field' => 'id_os', - 'field2' => 'alias '.$order_collation, + 'field2' => 'alias ', 'order' => 'ASC', ]; break; @@ -466,7 +449,7 @@ switch ($sortField) { $selectOsDown = $selected; $order = [ 'field' => 'id_os', - 'field2' => 'alias '.$order_collation, + 'field2' => 'alias ', 'order' => 'DESC', ]; break; @@ -483,7 +466,7 @@ switch ($sortField) { $selectGroupUp = $selected; $order = [ 'field' => 'id_grupo', - 'field2' => 'alias '.$order_collation, + 'field2' => 'alias ', 'order' => 'ASC', ]; break; @@ -492,7 +475,7 @@ switch ($sortField) { $selectGroupDown = $selected; $order = [ 'field' => 'id_grupo', - 'field2' => 'alias '.$order_collation, + 'field2' => 'alias ', 'order' => 'DESC', ]; break; @@ -511,8 +494,8 @@ switch ($sortField) { $selectGroupUp = ''; $selectGroupDown = ''; $order = [ - 'field' => 'alias '.$order_collation, - 'field2' => 'alias '.$order_collation, + 'field' => 'alias ', + 'field2' => 'alias ', 'order' => 'ASC', ]; break; @@ -520,30 +503,45 @@ switch ($sortField) { $search_sql = ''; if ($search != '') { - $sql = "SELECT DISTINCT taddress_agent.id_agent FROM taddress - INNER JOIN taddress_agent ON - taddress.id_a = taddress_agent.id_a - WHERE taddress.ip LIKE '%$search%'"; + $sql = sprintf( + 'SELECT DISTINCT taddress_agent.id_agent FROM taddress + INNER JOIN taddress_agent ON + taddress.id_a = taddress_agent.id_a + WHERE taddress.ip LIKE "%%%s%%"', + $search + ); $id = db_get_all_rows_sql($sql); if ($id != '') { $aux = $id[0]['id_agent']; - $search_sql = ' AND ( LOWER(nombre) '.$order_collation." - LIKE LOWER('%$search%') OR tagente.id_agente = $aux"; - if (count($id) >= 2) { - for ($i = 1; $i < count($id); $i++) { + $search_sql = sprintf( + ' AND ( `nombre` LIKE "%%%s%%" OR tagente.id_agente = %d', + $search, + $aux + ); + $nagent_count = count($id); + if ($nagent_count >= 2) { + for ($i = 1; $i < $nagent_count; $i++) { $aux = $id[$i]['id_agent']; - $search_sql .= " OR tagente.id_agente = $aux"; + $search_sql .= sprintf( + ' OR tagente.id_agente = %d', + $aux + ); } } $search_sql .= ')'; } else { - $search_sql = ' AND ( nombre '.$order_collation." - LIKE LOWER('%$search%') OR alias ".$order_collation." - LIKE LOWER('%$search%') OR comentarios ".$order_collation." LIKE LOWER('%$search%') - OR EXISTS (SELECT * FROM tagent_custom_data - WHERE id_agent = id_agente AND description LIKE '%$search%'))"; + $search_sql = sprintf( + ' AND ( nombre + LIKE "%%%s%%" OR alias + LIKE "%%%s%%" OR comentarios LIKE "%%%s%%" + OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND description LIKE "%%%s%%")', + $search, + $search, + $search, + $search + ); } } diff --git a/pandora_console/mobile/operation/agents.php b/pandora_console/mobile/operation/agents.php index 39ba1732b8..5a86af6b99 100644 --- a/pandora_console/mobile/operation/agents.php +++ b/pandora_console/mobile/operation/agents.php @@ -296,8 +296,8 @@ class Agents $total = isset($total[0]['total']) ? $total[0]['total'] : 0; $order = [ - 'field' => 'alias COLLATE utf8_general_ci', - 'field2' => 'nombre COLLATE utf8_general_ci', + 'field' => 'alias', + 'field2' => 'nombre', 'order' => 'ASC', ]; if (!$system->getConfig('metaconsole')) { diff --git a/pandora_console/operation/agentes/estado_agente.php b/pandora_console/operation/agentes/estado_agente.php index 2da61a63d2..0c4b4bc086 100644 --- a/pandora_console/operation/agentes/estado_agente.php +++ b/pandora_console/operation/agentes/estado_agente.php @@ -319,29 +319,14 @@ $selectLastContactUp = false; $selectLastContactDown = false; $order = null; - -$order_collation = ''; -switch ($config['dbtype']) { - case 'mysql': - // $order_collation = " COLLATE utf8_general_ci";. - $order_collation = ''; - break; - - case 'postgresql': - case 'oracle': - $order_collation = ''; - break; -} - - switch ($sortField) { case 'remote': switch ($sort) { case 'up': $selectRemoteUp = $selected; $order = [ - 'field' => 'remote'.$order_collation, - 'field2' => 'nombre'.$order_collation, + 'field' => 'remote', + 'field2' => 'nombre', 'order' => 'ASC', ]; break; @@ -349,8 +334,8 @@ switch ($sortField) { case 'down': $selectRemoteDown = $selected; $order = [ - 'field' => 'remote'.$order_collation, - 'field2' => 'nombre'.$order_collation, + 'field' => 'remote', + 'field2' => 'nombre', 'order' => 'DESC', ]; break; @@ -366,8 +351,8 @@ switch ($sortField) { case 'up': $selectNameUp = $selected; $order = [ - 'field' => 'alias'.$order_collation, - 'field2' => 'alias'.$order_collation, + 'field' => 'alias', + 'field2' => 'alias', 'order' => 'ASC', ]; break; @@ -375,8 +360,8 @@ switch ($sortField) { case 'down': $selectNameDown = $selected; $order = [ - 'field' => 'alias'.$order_collation, - 'field2' => 'alias'.$order_collation, + 'field' => 'alias', + 'field2' => 'alias', 'order' => 'DESC', ]; break; @@ -393,7 +378,7 @@ switch ($sortField) { $selectOsUp = $selected; $order = [ 'field' => 'id_os', - 'field2' => 'alias'.$order_collation, + 'field2' => 'alias', 'order' => 'ASC', ]; break; @@ -402,7 +387,7 @@ switch ($sortField) { $selectOsDown = $selected; $order = [ 'field' => 'id_os', - 'field2' => 'alias'.$order_collation, + 'field2' => 'alias', 'order' => 'DESC', ]; break; @@ -419,7 +404,7 @@ switch ($sortField) { $selectIntervalUp = $selected; $order = [ 'field' => 'intervalo', - 'field2' => 'alias'.$order_collation, + 'field2' => 'alias', 'order' => 'ASC', ]; break; @@ -428,7 +413,7 @@ switch ($sortField) { $selectIntervalDown = $selected; $order = [ 'field' => 'intervalo', - 'field2' => 'alias'.$order_collation, + 'field2' => 'alias', 'order' => 'DESC', ]; break; @@ -445,7 +430,7 @@ switch ($sortField) { $selectGroupUp = $selected; $order = [ 'field' => 'id_grupo', - 'field2' => 'alias'.$order_collation, + 'field2' => 'alias', 'order' => 'ASC', ]; break; @@ -454,7 +439,7 @@ switch ($sortField) { $selectGroupDown = $selected; $order = [ 'field' => 'id_grupo', - 'field2' => 'alias'.$order_collation, + 'field2' => 'alias', 'order' => 'DESC', ]; break; @@ -471,7 +456,7 @@ switch ($sortField) { $selectLastContactUp = $selected; $order = [ 'field' => 'ultimo_contacto', - 'field2' => 'alias'.$order_collation, + 'field2' => 'alias', 'order' => 'DESC', ]; break; @@ -480,7 +465,7 @@ switch ($sortField) { $selectLastContactDown = $selected; $order = [ 'field' => 'ultimo_contacto', - 'field2' => 'alias'.$order_collation, + 'field2' => 'alias', 'order' => 'ASC', ]; break; @@ -497,7 +482,7 @@ switch ($sortField) { $selectDescriptionUp = $selected; $order = [ 'field' => 'comentarios', - 'field2' => 'alias'.$order_collation, + 'field2' => 'alias', 'order' => 'DESC', ]; break; @@ -506,7 +491,7 @@ switch ($sortField) { $selectDescriptionDown = $selected; $order = [ 'field' => 'comentarios', - 'field2' => 'alias'.$order_collation, + 'field2' => 'alias', 'order' => 'ASC', ]; break; @@ -531,8 +516,8 @@ switch ($sortField) { $selectLastContactUp = false; $selectLastContactDown = false; $order = [ - 'field' => 'alias'.$order_collation, - 'field2' => 'alias'.$order_collation, + 'field' => 'alias', + 'field2' => 'alias', 'order' => 'ASC', ]; break; @@ -540,41 +525,48 @@ switch ($sortField) { $search_sql = ''; if ($search != '') { - $sql = "SELECT DISTINCT taddress_agent.id_agent FROM taddress - INNER JOIN taddress_agent ON - taddress.id_a = taddress_agent.id_a - WHERE taddress.ip LIKE '%$search%'"; + $sql = sprintf( + 'SELECT DISTINCT taddress_agent.id_agent FROM taddress + INNER JOIN taddress_agent ON + taddress.id_a = taddress_agent.id_a + WHERE taddress.ip LIKE "%%%s%%"', + $search + ); $id = db_get_all_rows_sql($sql); if ($id != '') { $aux = $id[0]['id_agent']; - $search_sql = ' AND ( nombre '.$order_collation." - LIKE '%$search%' OR alias ".$order_collation." LIKE '%$search%' - OR tagente.id_agente = $aux"; - if (count($id) >= 2) { - for ($i = 1; $i < count($id); $i++) { + $search_sql = sprintf( + ' AND ( `nombre` LIKE "%%%s%%" OR tagente.id_agente = %d', + $search, + $aux + ); + $nagent_count = count($id); + if ($nagent_count >= 2) { + for ($i = 1; $i < $nagent_count; $i++) { $aux = $id[$i]['id_agent']; - $search_sql .= " OR tagente.id_agente = $aux"; + $search_sql .= sprintf( + ' OR tagente.id_agente = %d', + $aux + ); } } $search_sql .= ')'; } else { - $search_sql = ' AND ( nombre '.$order_collation." - LIKE '%$search%' - OR comentarios ".$order_collation." LIKE '%$search%' - OR alias ".$order_collation." LIKE '%$search%') "; + $search_sql = sprintf( + ' AND ( nombre + LIKE "%%%s%%" OR alias + LIKE "%%%s%%" OR comentarios LIKE "%%%s%%" + OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND description LIKE "%%%s%%")', + $search, + $search, + $search, + $search + ); } } - -if (!empty($search_custom)) { - $search_sql_custom = " AND EXISTS (SELECT * FROM tagent_custom_data - WHERE id_agent = id_agente AND description LIKE '%$search_custom%')"; -} else { - $search_sql_custom = ''; -} - // Show only selected groups. if ($group_id > 0) { $groups = [$group_id]; @@ -655,7 +647,7 @@ if ($strict_user) { $agents = agents_get_agents( [ - 'order' => 'nombre '.$order_collation.' ASC', + 'order' => 'nombre '.' ASC', 'id_grupo' => $groups, 'disabled' => 0, 'status' => $status,