2011-02-21 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_db.php: added in function "get_group_agents" the parameter "$childGroups" for get the child groups. And in the function "get_user_groups" added the parameter "$id_groups" for to get groups. Add the function "get_id_groups_recursive" for to get groups in the tree groups. * godmode/reporting/visual_console_builder.wizard.php: fixed the select box of agents when user have agents in subgroup in any subgroup in the tree group. Fixes: #3180902 git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@3947 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
918acf5c68
commit
0062998ec8
|
@ -1,3 +1,16 @@
|
||||||
|
2011-02-21 Miguel de Dios <miguel.dedios@artica.es>
|
||||||
|
|
||||||
|
* include/functions_db.php: added in function "get_group_agents" the
|
||||||
|
parameter "$childGroups" for get the child groups. And in the function
|
||||||
|
"get_user_groups" added the parameter "$id_groups" for to get groups. Add
|
||||||
|
the function "get_id_groups_recursive" for to get groups in the tree groups.
|
||||||
|
|
||||||
|
* godmode/reporting/visual_console_builder.wizard.php: fixed the select box
|
||||||
|
of agents when user have agents in subgroup in any subgroup in the tree
|
||||||
|
group.
|
||||||
|
|
||||||
|
Fixes: #3180902
|
||||||
|
|
||||||
2011-02-21 Javier Lanz <javier.lanz@artica.es>
|
2011-02-21 Javier Lanz <javier.lanz@artica.es>
|
||||||
|
|
||||||
* godmode/alerts/alert_templates.php: Truncated Group name
|
* godmode/alerts/alert_templates.php: Truncated Group name
|
||||||
|
|
|
@ -60,7 +60,7 @@ $table->data[2][1] = __('Width').': '.print_input_text ('width', 0, '', 5, 5, tr
|
||||||
$table->data[2][1] .= '<br />'.__('Height').': '.print_input_text ('height', 0, '', 5, 5, true);
|
$table->data[2][1] .= '<br />'.__('Height').': '.print_input_text ('height', 0, '', 5, 5, true);
|
||||||
|
|
||||||
$table->data[3][0] = __('Agents');
|
$table->data[3][0] = __('Agents');
|
||||||
$table->data[3][1] = print_select (get_group_agents ($visualConsole['id_group'], false, "none"),
|
$table->data[3][1] = print_select (get_group_agents ($visualConsole['id_group'], false, "none", false, true),
|
||||||
'id_agents[]', 0, false, '', '', true, true);
|
'id_agents[]', 0, false, '', '', true, true);
|
||||||
|
|
||||||
$table->data[4][0] = __('Modules');
|
$table->data[4][0] = __('Modules');
|
||||||
|
|
|
@ -547,14 +547,16 @@ function isAllGroups($idGroups) {
|
||||||
* @param mixed $search to add Default: False. If True will return disabled agents as well. If searching array (disabled => (bool), string => (string))
|
* @param mixed $search to add Default: False. If True will return disabled agents as well. If searching array (disabled => (bool), string => (string))
|
||||||
* @param string $case Which case to return the agentname as (lower, upper, none)
|
* @param string $case Which case to return the agentname as (lower, upper, none)
|
||||||
* @param boolean $noACL jump the ACL test.
|
* @param boolean $noACL jump the ACL test.
|
||||||
|
* @param boolean $childGroups The flag to get agents in the child group of group parent passed. By default false.
|
||||||
*
|
*
|
||||||
* @return array An array with all agents in the group or an empty array
|
* @return array An array with all agents in the group or an empty array
|
||||||
*/
|
*/
|
||||||
function get_group_agents ($id_group = 0, $search = false, $case = "lower", $noACL = false) {
|
function get_group_agents ($id_group = 0, $search = false, $case = "lower", $noACL = false, $childGroups = false) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
|
|
||||||
if (!$noACL) {
|
if (!$noACL) {
|
||||||
$id_group = safe_acl_group ($config["id_user"], $id_group, "AR");
|
$id_group = safe_acl_group($config["id_user"], $id_group, "AR");
|
||||||
|
|
||||||
if (empty ($id_group)) {
|
if (empty ($id_group)) {
|
||||||
//An empty array means the user doesn't have access
|
//An empty array means the user doesn't have access
|
||||||
|
@ -562,6 +564,10 @@ function get_group_agents ($id_group = 0, $search = false, $case = "lower", $noA
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($childGroups) {
|
||||||
|
$id_group = array_keys(get_user_groups(false, "AR", true, false, (array)$id_group));
|
||||||
|
}
|
||||||
|
|
||||||
if (is_array($id_group)) {
|
if (is_array($id_group)) {
|
||||||
$search_sql = sprintf ('WHERE id_grupo IN (%s)', implode (",", $id_group));
|
$search_sql = sprintf ('WHERE id_grupo IN (%s)', implode (",", $id_group));
|
||||||
}
|
}
|
||||||
|
@ -572,13 +578,15 @@ function get_group_agents ($id_group = 0, $search = false, $case = "lower", $noA
|
||||||
$search_sql = sprintf ('WHERE id_grupo = %d', $id_group);
|
$search_sql = sprintf ('WHERE id_grupo = %d', $id_group);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($search === true) {
|
if ($search === true) {
|
||||||
//No added search. Show both disabled and non-disabled
|
//No added search. Show both disabled and non-disabled
|
||||||
}
|
}
|
||||||
elseif (is_array ($search)) {
|
elseif (is_array ($search)) {
|
||||||
if (isset ($search["disabled"])) {
|
if (isset ($search["disabled"])) {
|
||||||
$search_sql .= ' AND disabled = '.($search["disabled"] ? 1 : 0); //Bool, no cleanup necessary
|
$search_sql .= ' AND disabled = '.($search["disabled"] ? 1 : 0); //Bool, no cleanup necessary
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$search_sql .= ' AND disabled = 0';
|
$search_sql .= ' AND disabled = 0';
|
||||||
}
|
}
|
||||||
unset ($search["disabled"]);
|
unset ($search["disabled"]);
|
||||||
|
@ -604,6 +612,7 @@ function get_group_agents ($id_group = 0, $search = false, $case = "lower", $noA
|
||||||
$search_sql .= ' AND disabled = 0';
|
$search_sql .= ' AND disabled = 0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$sql = sprintf ("SELECT id_agente, nombre FROM tagente %s ORDER BY nombre", $search_sql);
|
$sql = sprintf ("SELECT id_agente, nombre FROM tagente %s ORDER BY nombre", $search_sql);
|
||||||
|
|
||||||
$result = get_db_all_rows_sql ($sql);
|
$result = get_db_all_rows_sql ($sql);
|
||||||
|
@ -1653,17 +1662,32 @@ function get_all_model_groups () {
|
||||||
* @param string The privilege to evaluate, and it is false then no check ACL.
|
* @param string The privilege to evaluate, and it is false then no check ACL.
|
||||||
* @param boolean $returnAllGroup Flag the return group, by default true.
|
* @param boolean $returnAllGroup Flag the return group, by default true.
|
||||||
* @param boolean $returnAllColumns Flag to return all columns of groups.
|
* @param boolean $returnAllColumns Flag to return all columns of groups.
|
||||||
|
* @param array $id_groups The list of group to scan to bottom child. By default null.
|
||||||
*
|
*
|
||||||
* @return array A list of the groups the user has certain privileges.
|
* @return array A list of the groups the user has certain privileges.
|
||||||
*/
|
*/
|
||||||
function get_user_groups ($id_user = false, $privilege = "AR", $returnAllGroup = true, $returnAllColumns = false) {
|
function get_user_groups ($id_user = false, $privilege = "AR", $returnAllGroup = true, $returnAllColumns = false, $id_groups = null) {
|
||||||
if (empty ($id_user)) {
|
if (empty ($id_user)) {
|
||||||
global $config;
|
global $config;
|
||||||
$id_user = $config['id_user'];
|
$id_user = $config['id_user'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$user_groups = array ();
|
if (isset($id_groups)) {
|
||||||
|
//Get recursive id groups
|
||||||
|
$list_id_groups = array();
|
||||||
|
foreach ((array)$id_groups as $id_group) {
|
||||||
|
$list_id_groups = array_merge($list_id_groups, get_id_groups_recursive($id_group));
|
||||||
|
}
|
||||||
|
|
||||||
|
$list_id_groups = array_unique($list_id_groups);
|
||||||
|
|
||||||
|
$groups = get_db_all_rows_filter('tgrupo', array('id_grupo' => $list_id_groups));
|
||||||
|
}
|
||||||
|
else {
|
||||||
$groups = get_db_all_rows_in_table ('tgrupo', 'nombre');
|
$groups = get_db_all_rows_in_table ('tgrupo', 'nombre');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user_groups = array ();
|
||||||
|
|
||||||
if (!$groups)
|
if (!$groups)
|
||||||
return $user_groups;
|
return $user_groups;
|
||||||
|
@ -1688,7 +1712,7 @@ function get_user_groups ($id_user = false, $privilege = "AR", $returnAllGroup =
|
||||||
$user_groups[$group['id_grupo']] = $group['nombre'];
|
$user_groups[$group['id_grupo']] = $group['nombre'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (give_acl ($id_user, $group["id_grupo"], $privilege)) {
|
else if (check_acl($id_user, $group["id_grupo"], $privilege)) {
|
||||||
if ($returnAllColumns) {
|
if ($returnAllColumns) {
|
||||||
$user_groups[$group['id_grupo']] = $group;
|
$user_groups[$group['id_grupo']] = $group;
|
||||||
}
|
}
|
||||||
|
@ -1703,6 +1727,35 @@ function get_user_groups ($id_user = false, $privilege = "AR", $returnAllGroup =
|
||||||
return $user_groups;
|
return $user_groups;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_id_groups_recursive($id_parent, $all = false) {
|
||||||
|
$return = array();
|
||||||
|
|
||||||
|
$return = array_merge($return, array($id_parent));
|
||||||
|
|
||||||
|
//Check propagate
|
||||||
|
$id = get_db_value_filter('id_grupo', 'tgrupo', array('id_grupo' => $id_parent, 'propagate' => 1));
|
||||||
|
|
||||||
|
if (($id !== false) || $all) {
|
||||||
|
$children = get_db_all_rows_filter("tgrupo", array('parent' => $id_parent, 'disabled' => 0), array('id_grupo'));
|
||||||
|
if ($children === false) {
|
||||||
|
$children = array();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$temp = array();
|
||||||
|
foreach ($children as $id_children) {
|
||||||
|
$temp = array_merge($temp, array($id_children['id_grupo']));
|
||||||
|
}
|
||||||
|
$children = $temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($children as $id_children) {
|
||||||
|
$return = array_merge($return, get_id_groups_recursive($id_children, $all));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make with a list of groups a treefied list of groups.
|
* Make with a list of groups a treefied list of groups.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue