static function getUserEntitiesForRight($user_ID, $right, $is_recursive = true)
{
global $DB;
$query = "SELECT DISTINCT `glpi_profiles_users`.`entities_id`,\n `glpi_profiles_users`.`is_recursive`\n FROM `glpi_profiles_users`\n INNER JOIN `glpi_profiles`\n ON (`glpi_profiles_users`.`profiles_id` = `glpi_profiles`.`id`)\n INNER JOIN `glpi_profilerights`\n ON (`glpi_profilerights`.`profiles_id` = `glpi_profiles`.`id`)\n WHERE `glpi_profiles_users`.`users_id` = '{$user_ID}'\n AND `glpi_profilerights`.`name` = '{$right}'\n AND `glpi_profilerights`.`rights` & " . (READ | CREATE | UPDATE | DELETE | PURGE);
$result = $DB->query($query);
if ($DB->numrows($result) > 0) {
$entities = array();
while ($data = $DB->fetch_assoc($result)) {
if ($data['is_recursive'] && $is_recursive) {
$tab = getSonsOf('glpi_entities', $data['entities_id']);
$entities = array_merge($tab, $entities);
} else {
$entities[] = $data['entities_id'];
}
}
return array_unique($entities);
}
return array();
}