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...



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@3927 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
mdtrooper 2011-02-18 15:13:34 +00:00
parent df766ab812
commit e05bf38245
4 changed files with 20 additions and 102 deletions

View File

@ -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,

View File

@ -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 (

View File

@ -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

View File

@ -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