include 'include/ldap_entry.inc'; class ldap_manager { var $entries; var $result_identifier, $search_filter, $base_dn; var $ldap_action, $host; var $link_identifier; var $entriesCount; function connect($host) { $this->link_identifier = ldap_connect($host); if ($this->link_identifier) return 1; return 0; } function disconnect() { ldap_close($this->link_identifier); } function ldapTakeAction($a = "search") { $func_ptr = "ldap_".$a; if ($this->result_identifier = $func_ptr($this->link_identifier, $this->base_dn, $this->search_filter)) { $this->entriesCount = ldap_count_entries($this->link_identifier, $this->result_identifier); return 1; } return 0; } cfunction getEntries() { $i=0; $entry = new ldap_entry($this->link_identifier); $entry->r_e_i = ldap_first_entry($this->link_identifier, $this->result_identifier); while($entry->r_e_i) { $entry->dn = ldap_get_dn($this->link_identifier, $entry->r_e_i); $entry->getAttributes(); $this->entries[$i] = $entry; $i++; $r = $entry->r_e_i; $entry = new ldap_entry($this->link_identifier); $entry->r_e_i = ldap_next_entry($this->link_identifier, $r); } // ldap_free_result($this->result_identifier); } cfunction displayEntries() { echo $this->formatHTMLEntries(); } cfunction formatHTMLBaseDN($dn) { global $FILE, $host; $string = ""; $attribs = ldap_explode_dn($dn, 0); $names = ldap_explode_dn($dn, 1); for ($i=0; $i<$attribs["count"]; $i++) { $s = $attribs[$i]; for ($j=$i+1; $j<$attribs["count"]; $j++) { $s .= ",".$attribs[$j]; } if (($s[0] == "c") && ($s[1] == "n")) { $string .= "".$names[$i].", "; } else { $string .= "".$names[$i].", "; } } return $string; } cfunction formatHTMLEntries() { $string = ""; $string .= '