diff --git a/pandora_console/include/functions.php b/pandora_console/include/functions.php index 6228989430..eb79896f51 100644 --- a/pandora_console/include/functions.php +++ b/pandora_console/include/functions.php @@ -1987,9 +1987,32 @@ function get_os_name ($id_os) { * @return array Dashboard name of the given user. */ function get_user_dashboards ($id_user) { - $sql = "SELECT name - FROM tdashboard - WHERE id_user="."'".$id_user."'"; + if (users_is_admin($id_user)) { + $sql = "SELECT name + FROM tdashboard WHERE id_user = '" . $id_user ."' OR id_user = ''"; + } + else { + $user_can_manage_all = users_can_manage_group_all('RR'); + if ($user_can_manage_all) { + $sql = "SELECT name + FROM tdashboard WHERE id_user = '" . $id_user ."' OR id_user = ''"; + } + else { + $user_groups = users_get_groups($id_user, "RR", false); + if (empty($user_groups)) { + return false; + } + + $u_groups = array(); + foreach ($user_groups as $id => $group_name) { + $u_groups[] = $id; + } + + $sql = "SELECT name + FROM tdashboard + WHERE id_group IN (" . implode(",", $u_groups) . ") AND (id_user = '" . $id_user ."' OR id_user = '')"; + } + } return db_get_all_rows_sql ($sql); }