diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index d477ae0e7f..5f2fb27877 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,11 @@ +2011-02-18 Miguel de Dios <miguel.dedios@artica.es> + + * include/functions_db.php, operation/search_modules.php, + operation/search_agents.php: sorry, I didn't think about the subgroups may + have other subgroups (and this may be recursive), rewrite the SQL for + search with groups, now the groups come from the PHP function to get + all groups, children groups, grandchildren groups... + 2011-02-18 Miguel de Dios <miguel.dedios@artica.es> * include/functions_db.php, operation/search_modules.php, diff --git a/pandora_console/include/functions_db.php b/pandora_console/include/functions_db.php index 82715ccdb9..2937a5a54a 100644 --- a/pandora_console/include/functions_db.php +++ b/pandora_console/include/functions_db.php @@ -702,6 +702,9 @@ function get_agent_modules ($id_agent = null, $details = false, $filter = false, } $id_agent = safe_int ($id_agent, 1); + + $userGroups = get_user_groups($config['id_user'], 'AR', false); + $id_userGroups = array_keys($userGroups); $where = " WHERE ( 1 = ( @@ -714,40 +717,7 @@ function get_agent_modules ($id_agent = null, $details = false, $filter = false, SELECT id_agente FROM tagente WHERE id_grupo IN ( - SELECT id_grupo - FROM tgrupo - WHERE id_grupo IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario = '" . $config['id_user'] . "' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - OR ( - parent IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario = '" . $config['id_user'] . "' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) AND 1 = ( - SELECT propagate - FROM tgrupo - WHERE id_grupo IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario = '" . $config['id_user'] . "' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - ) - ) + " . implode(',', $id_userGroups) . " ) ) OR 0 IN ( diff --git a/pandora_console/operation/search_agents.php b/pandora_console/operation/search_agents.php index acd387aa19..f326ea5523 100755 --- a/pandora_console/operation/search_agents.php +++ b/pandora_console/operation/search_agents.php @@ -105,6 +105,9 @@ switch ($sortField) { $agents = false; if ($searchAgents) { + $userGroups = get_user_groups($config['id_user'], 'AR', false); + $id_userGroups = array_keys($userGroups); + $sql = " FROM tagente AS t1 INNER JOIN tgrupo AS t2 @@ -116,40 +119,7 @@ if ($searchAgents) { WHERE id_user = '" . $config['id_user'] . "' ) OR t1.id_grupo IN ( - SELECT id_grupo - FROM tagente - WHERE id_grupo IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario = '" . $config['id_user'] . "' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - OR ( - parent IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario = '" . $config['id_user'] . "' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) AND 1 = ( - SELECT propagate - FROM tgrupo - WHERE id_grupo IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario = '" . $config['id_user'] . "' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - ) - ) + " . implode(',', $id_userGroups) . " ) OR 0 IN ( SELECT id_grupo diff --git a/pandora_console/operation/search_modules.php b/pandora_console/operation/search_modules.php index 3ea10a3e81..aad803ce6b 100644 --- a/pandora_console/operation/search_modules.php +++ b/pandora_console/operation/search_modules.php @@ -55,6 +55,9 @@ switch ($sortField) { $modules = false; if ($searchModules) { + $userGroups = get_user_groups($config['id_user'], 'AR', false); + $id_userGroups = array_keys($userGroups); + $chunk_sql = ' FROM tagente_modulo AS t1 INNER JOIN tagente AS t2 @@ -64,40 +67,7 @@ if ($searchModules) { INNER JOIN tagente_estado AS t4 ON t4.id_agente_modulo = t1.id_agente_modulo WHERE (t2.id_grupo IN ( - SELECT id_grupo - FROM tgrupo - WHERE id_grupo IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario = "' . $config['id_user'] . '" - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - OR ( - parent IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario = "' . $config['id_user'] . '" - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) AND 1 = ( - SELECT propagate - FROM tgrupo - WHERE id_grupo IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario = "' . $config['id_user'] . '" - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - ) - ) + ' . implode(',', $id_userGroups) . ' ) OR 0 IN ( SELECT id_grupo