예제 #1
0
function lookup_username($id)
{
    global $appError;

    if(strstr($id, '='))
    {
        //look up person by "dn" (distinct ldap name)
        try
        {
            $ds = ldap_connect(LDAP_SERVER);
            if ($ds == FALSE)
            {
                throw new Exception("");
            }
            // set a 10 second timelimit
            $sr = ldap_read($ds, $id, "(objectclass=*)", array(), 0, 0, READ_TIMELIMIT);
//            $sr = ldap_read($ds, $id, "(objectclass=*)");
            if ($sr == FALSE)
            {
                throw new Exception("");
            }
            $entries = ldap_get_entries($ds, $sr);
            if ($entries == FALSE)
            {
                throw new Exception("");
            }
            return make_person($entries[0]);
        }
        catch (Exception $e)
        {
            $appError = 1;
            return(DIRECTORY_UNAVAILABLE);
        }
    }
    else
    {
        $uidFilter = UID_FILTER;
        $uidFilter = str_replace("%s", $id, $uidFilter);
        $searchFilter = UID_SEARCH_FILTER;
        $searchFilter = str_replace("%s", $uidFilter, $searchFilter);
        $tmp = do_query($searchFilter);
        if ($appError == 1)
            return($tmp);
        foreach($tmp as $key => $first)
        {
            return make_person($first);
        }
    }
}
예제 #2
0
function lookup_username($id)
{
    if (strstr($id, '=')) {
        //look up person by "dn" (distinct ldap name)
        $ds = ldap_connect(SERVER);
        $sr = ldap_read($ds, $id, "(objectclass=*)");
        $entries = ldap_get_entries($ds, $sr);
        return make_person($entries[0]);
    } else {
        $tmp = do_query(new QueryElement("uid", $id));
        foreach ($tmp as $key => $first) {
            return make_person($first);
        }
    }
}