function getLdapExternalPeopleInfo($person)
{
    global $ou_externalPeople;
    if (@$ou_externalPeople) {
        $filter = 'eduPersonPrincipalName=' . $person['eppn'][0];
        $info = getLdapInfo($filter, $ou_externalPeople, array('memberOf'));
        $person = array_merge($person, $info);
    }
    return $person;
}
function existsLdap($base, $filter)
{
    $r = getLdapInfo($base, $filter, array(), 1);
    return (bool) $r;
}
function get_up1Roles_raw($user)
{
    global $UP1_ROLES_DN, $PEOPLE_DN;
    $roles = array();
    $rdn = "uid=" . $user['uid'] . ",{$PEOPLE_DN}";
    foreach (array('manager', 'roleOccupant', 'secretary') as $role) {
        $filter = "(&(objectClass=up1Role)({$role}={$rdn}))";
        foreach (getLdapInfo($UP1_ROLES_DN, $filter, array("mail" => "mail", "seeAlso" => "seeAlso")) as $e) {
            $e['role'] = $role;
            $roles[] = $e;
        }
    }
    return $roles;
}