Profile_User::getUserEntities PHP Method

getUserEntities() static public method

Get entities for which a user have a right
static public getUserEntities ( $user_ID, $is_recursive = true, $default_first = false ) : array
$user_ID user ID
$is_recursive check also using recursive rights (true by default)
$default_first user default entity first (false by default)
return array of entities ID
    static function getUserEntities($user_ID, $is_recursive = true, $default_first = false)
    {
        global $DB;
        $query = "SELECT DISTINCT `entities_id`, `is_recursive`\n                FROM `glpi_profiles_users`\n                WHERE `users_id` = '{$user_ID}'";
        $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'];
                }
            }
            // Set default user entity at the begin
            if ($default_first) {
                $user = new User();
                if ($user->getFromDB($user_ID)) {
                    $ent = $user->getField('entities_id');
                    if (in_array($ent, $entities)) {
                        array_unshift($entities, $ent);
                    }
                }
            }
            return array_unique($entities);
        }
        return array();
    }

Usage Example

    $data_fin = $_REQUEST['date2'];
} else {
    $data_ini = date("Y-01-01");
    $data_fin = date("Y-m-d");
}
# entity
$sql_e = "SELECT value FROM glpi_plugin_dashboard_config WHERE name = 'entity' AND users_id = " . $_SESSION['glpiID'] . "";
$result_e = $DB->query($sql_e);
$sel_ent = $DB->result($result_e, 0, 'value');
//select entity
if ($sel_ent == '' || $sel_ent == -1) {
    $query_ent1 = "\n\tSELECT entities_id\n\tFROM glpi_users\n\tWHERE id = " . $_SESSION['glpiID'] . " ";
    $res_ent1 = $DB->query($query_ent1);
    $user_ent = $DB->result($res_ent1, 0, 'entities_id');
    //get all user entities
    $entities = Profile_User::getUserEntities($_SESSION['glpiID'], true);
    $entities[] = $user_ent;
    $ent = implode(",", $entities);
    $entidade = "AND glpi_tickets.entities_id IN (" . $ent . ") ";
    $entidade1 = "";
} else {
    $entidade = "AND glpi_tickets.entities_id IN (" . $sel_ent . ") ";
}
?>

<html> 
<head>
<title> GLPI - <?php 
echo __('Tickets', 'dashboard') . '  ' . __('by SLAs', 'dashboard');
?>
 </title>
All Usage Examples Of Profile_User::getUserEntities