ldap_host = $_SESSION['phpgw_info']['instant_messenger']['server_ldap_jabber']; $this->ldap_context = $_SESSION['phpgw_info']['instant_messenger']['context_ldap_jabber']; $this->user = $_SESSION['phpgw_info']['instant_messenger']['user_ldap_jabber']; $this->password = $_SESSION['phpgw_info']['instant_messenger']['password_ldap_jabber']; $this->connect_ldap(false); } function __destruct() { ldap_close($this->conn); } function connect_ldap($refer) { $this->conn = ldap_connect($this->ldap_host); ldap_set_option($this->conn, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($this->conn, LDAP_OPT_REFERRALS, $refer); if(trim($this->user) != "") ldap_bind($this->conn,$this->user,$this->password); else ldap_bind($this->conn); } function get_photo_ldap($user,$getPhoto) { $result = ""; if ($this->conn) { $filter="uid=".$user; $justthese = array("jpegphoto"); $search = ldap_search($this->conn,$this->ldap_context, $filter, $justthese); $entry = ldap_first_entry($this->conn, $search); if($entry != 'undefined'){ $jpeg_data = @ldap_get_values_len($this->conn, $entry, "jpegphoto"); $photo = imagecreatefromstring($jpeg_data[0]); if($photo){ if($getPhoto){ header("Content-Type: image/jpeg"); $width = imagesx($photo); $height = imagesy($photo); $twidth = 49; $theight = 65; $small_photo = imagecreatetruecolor ($twidth, $theight); imagecopyresampled($small_photo, $photo, 0, 0, 0, 0,$twidth, $theight, $width, $height); imagejpeg($small_photo,'',100); return; }else{ return 1; } }else{ return 0; } }else{ return 0; } } } function photo_ldap($user) { return $this->get_photo_ldap($user['uid'],false); } function list_users_ldap($orgLdap = false,$type,$uid) { $result_users = array(); $i = 0; if ($this->conn) { $filter = $type ."=". $uid; $justthese = array("uid","uidNumber","cn","mail","phpgwAccountVisible"); if($orgLdap) $search = ldap_search($this->conn,"ou=".$orgLdap.",".$this->ldap_context, $filter, $justthese); else $search = ldap_search($this->conn,$this->ldap_context, $filter, $justthese); $entry = ldap_get_entries($this->conn, $search); } if($entry['count'] == 0){ $result_users['count'] = 0; $result_users['uidnumber'] = $uid; return $result_users; } $result_users['uid'] = $entry[0]['uid'][0]; $result_users['uidnumber'] = $entry[0]['uidnumber'][0]; $result_users['cn'] = $entry[0]['cn'][0]; $result_users['mail'] = $entry[0]['mail'][0]; $result_users['phpgwAccountVisible'] = @$entry[0]['phpgwaccountvisible'][0]; return $result_users; } function list_groups_ldap($orgLdap, $gid) { $result_groups = ""; $i = 0; if ($this->conn) { $filter="(&(gidNumber=".$gid.")(objectClass=posixGroup))"; $justthese = array("gidnumber","cn","memberuid"); $search = ldap_search($this->conn,"ou=".$orgLdap.",".$this->ldap_context, $filter, $justthese); $entry = ldap_get_entries($this->conn, $search); } if($entry['count'] == "1"){ $result_groups = array_shift($entry[0]['memberuid']); return $entry[0]['memberuid']; } return false; } function list_organizations_ldap() { $result_org = array(); $i = 0; if ($this->conn) { $filter="ou=*"; $justthese = array("ou"); $search = ldap_list($this->conn,$this->ldap_context, $filter, $justthese); $entry = ldap_get_entries($this->conn, $search); } foreach($entry as $tmp){ if($tmp['ou'][0] != ""){ $result_org[$i]['ou'] = $tmp['ou'][0]; $i++; } } return $result_org; } function info_user($user) { $uid = $user['uid']; $i= 0; $entry = $this->list_users_ldap(false,"uid",$uid); $result_users[0]['uid'] = $entry['uid']; $result_users[0]['cn'] = $entry['cn']; $result_users[0]['mail'] = $entry['mail']; $_SESSION['debug'] = $result_users; return $result_users; } } if(trim($_REQUEST['user']) != ""){ $obj_img = new ldap_im(); $obj_img->get_photo_ldap($_REQUEST['user'],true); } ?>