Пример #1
0
function find($query, $types)
{
    global $dbfields;
    if ($query) {
        $types = get_appropriate_fields($query);
        $types["address"] = false;
        $types["department"] = false;
        $types["title"] = false;
        $types["shell"] = false;
    }
    $retres = array();
    foreach ($dbfields as $f) {
        if (!isset($types[$f]) || !$types[$f]) {
            continue;
        }
        $r = search_db_fields($f, $types[$f]);
        foreach ($r as $p) {
            $retres[] = $p;
        }
    }
    if ($types["netid"]) {
        $results = search_db($types["netid"]);
        if (!$results) {
            $results = search_ldap(array("netid" => $types["netid"]));
        }
        if (count($results) > 0) {
            $retres[] = $results[0];
        }
        $types["netid"] = false;
    }
    $lres = search_ldap($types);
    if ($lres) {
        foreach ($lres as $result) {
            $retres[] = $result;
        }
    }
    return uniq($retres);
}
Пример #2
0
 function refresh_db()
 {
     init_db();
     $query = "select timestamp from users where netid='" . pg_escape_string($this->netid) . "'";
     $result = pg_query($query);
     $line = pg_fetch_array($result, null, PGSQL_ASSOC);
     pg_free_result($result);
     if (!$line) {
         $query = "insert into users (netid, from_ldap) values ('" . pg_escape_string($this->netid) . "', false)";
         $result = pg_query($query);
         pg_free_result($result);
     } else {
         if (!isold($line["timestamp"])) {
             return;
         }
     }
     $person = search_ldap(array("netid" => $this->netid));
     $this->purge();
     $this->merge($person[0]);
 }