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); }
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]); }