fileD = new fileDefine(); $this->db_name = $_SESSION['phpgw_info']['jabberit_messenger']['server']['db_name']; $this->db_host = $_SESSION['phpgw_info']['jabberit_messenger']['server']['db_host']; $this->db_port = $_SESSION['phpgw_info']['jabberit_messenger']['server']['db_port']; $this->db_user = $_SESSION['phpgw_info']['jabberit_messenger']['server']['db_user']; $this->db_pass = $_SESSION['phpgw_info']['jabberit_messenger']['server']['db_pass']; $this->db_type = $_SESSION['phpgw_info']['jabberit_messenger']['server']['db_type']; $this->user_id = $_SESSION['phpgw_info']['jabberit_messenger']['user_id']; $this->connectDB(); } private final function connectDB() { $this->db = new db(); $this->db_name = ( !$this->db_name ) ? $_SESSION['phpgwinfo']['db_name'] : $this->db_name; $this->db_host = ( !$this->db_host ) ? $_SESSION['phpgwinfo']['db_host'] : $this->db_host; $this->db_port = ( !$this->db_port ) ? $_SESSION['phpgwinfo']['db_port'] : $this->db_port; $this->db_user = ( !$this->db_user ) ? $_SESSION['phpgwinfo']['db_user'] : $this->db_user; $this->db_pass = ( !$this->db_pass ) ? $_SESSION['phpgwinfo']['db_pass'] : $this->db_pass; $this->db_type = ( !$this->db_type ) ? $_SESSION['phpgwinfo']['db_type'] : $this->db_type; $this->db->connect($this->db_name,$this->db_host,$this->db_port,$this->db_user,$this->db_pass,$this->db_type); } public final function editHostJabber($pItem) { $hostsJabber = unserialize($this->getHostsJabber()); $findHosts = explode(":", $pItem['item']); $return = ""; for( $i = 0 ; $i < count($hostsJabber); $i++ ) if( $hostsJabber[$i]['org'] == $findHosts[0] && $hostsJabber[$i]['jabberName'] == $findHosts[1] ) { $return = "org:" . $hostsJabber[$i]['org'] . ";" . "jabberName:" . $hostsJabber[$i]['jabberName'] . ";" . "serverLdap:" . $hostsJabber[$i]['serverLdap'] . ";" . "contextLdap:" . $hostsJabber[$i]['contextLdap'] . ";" . "user:" . $hostsJabber[$i]['user'] . ";" . "password:" . $hostsJabber[$i]['password'] ; } return trim($return); } public final function getApplicationsEnabled() { $this->db->query("SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' and config_name ='apps_jabberit'"); if($this->db->num_rows()) { $tmp = ""; while($this->db->next_record()) { $tmp[]= $this->db->row(); } return $tmp[0]['config_value']; } return false; } public final function getApplicationsList() { $this->db->query("SELECT * FROM phpgw_applications WHERE app_enabled = '1' order by app_name"); if($this->db->num_rows()) { while ($this->db->next_record()) { $app = $this->db->f('app_name'); $title = @$GLOBALS['phpgw_info']['apps'][$app]['title']; if (empty($title)) { $title = lang($app) == $app.'*' ? $app : lang($app); } $apps[$app] = array( 'title' => $title, 'name' => $app, 'status' => $this->db->f('app_enabled') ); } } return $apps; } public final function get_accounts_acl() { $query = "SELECT acl_account FROM phpgw_acl WHERE acl_location IN (SELECT CAST(acl_account AS varchar) FROM phpgw_acl WHERE acl_appname = 'jabberit_messenger') "; $query .= "UNION SELECT acl_account FROM phpgw_acl WHERE acl_appname = 'jabberit_messenger'"; if( $this->db->query($query) ) { $users = array(); $new_users = array(); while($this->db->next_record()) $users[] = $this->db->row(); if(is_array($users)) foreach($users as $tmp) $new_users[] = $tmp['acl_account']; return $new_users; } return false; } public final function getGroupsBlocked() { $return = ""; if( $this->db ) { $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'groups_locked_jabberit';"; if($this->db->query($query)) { if ( $this->db->query($query) ) { while($this->db->next_record()) $result[] = $this->db->row(); } if( count($result) > 0 ) $return = $result[0]['config_value']; } } return $return; } public final function getGroupsSearch() { $return = ""; if( $this->db ) { $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'groups_search_jabberit';"; if($this->db->query($query)) { while($this->db->next_record()) $result[] = $this->db->row(); } if( count($result) > 0 ) $return = $result[0]['config_value']; } return $return; } public final function getHostsJabber() { $return = ""; if( $this->db ) { $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'map_org_realm_jabberit';"; if($this->db->query($query)) { while($this->db->next_record()) $result[] = $this->db->row(); } if( count($result) > 0 ) $return = $result[0]['config_value']; } return $return; } public final function getPreferences() { $result = array(); $query = "SELECT * FROM phpgw_preferences WHERE preference_owner = '".$this->user_id."' AND preference_app = 'jabberit_messenger'"; if ( $this->db->query($query) ) { while($this->db->next_record()) $result[] = $this->db->row(); if( count($result) > 0 ) { $_return = unserialize($result[0]['preference_value']); if( is_array($_return) ) return $_return['preferences']; else return $_return; } } return "openWindowJabberit:true;openWindowJabberitPopUp:false;flagAwayIM:5"; } public final function setApplications($pApplications) { $apps = serialize($pApplications); if( $this->db ) { $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' and config_name ='apps_jabberit'"; $this->db->query($query); if(!$this->db->next_record()) { $query = "INSERT INTO phpgw_config(config_app,config_name,config_value) VALUES('phpgwapi','apps_jabberit','".$apps."')"; $this->db->query($query); return true; } else { $query = "UPDATE phpgw_config SET config_value = '".$apps."' WHERE config_app = 'phpgwapi' AND config_name = 'apps_jabberit'"; $this->db->query($query); return true; } } return false; } public final function setAttributesLdap($pAttributes) { $values = $pAttributes['conf']; $attributesOrg = ""; if( $this->db ) { $query = "SELECT * from phpgw_config WHERE config_app = 'phpgwapi' and config_name = 'attributes_org_ldap_jabberit'"; if ( $this->db->query($query) ) { while($this->db->next_record()) $result[] = $this->db->row(); if(count($result) > 0) $attributesOrg = $result[0]['config_value']; } if( trim($attributesOrg) == "" ) { $query = "INSERT INTO phpgw_config(config_app,config_name,config_value) VALUES('phpgwapi','attributes_org_ldap_jabberit','".$values."')"; $this->db->query($query); $attr = explode(";", $values); $values = "".$attr[0].""; return $values; } else { $org = explode(",", $attributesOrg); $newValue = explode(";", $values); foreach( $org as $tmp ) { $attr = explode(";",$tmp); if( strtolower(trim($attr[0])) == strtolower(trim($newValue[0])) ) return false; } $values = $values . "," . $attributesOrg; $query = "UPDATE phpgw_config SET config_value = '".$values."' WHERE config_app = 'phpgwapi' AND config_name = 'attributes_org_ldap_jabberit'"; $this->db->query($query); $return = explode(",",$values); natcasesort($return); $values = ""; foreach($return as $tmp) { $attr = explode(";", $tmp); $values .= "" . $attr[0] . ""; } $values .= ""; return $values; } } return false; } public final function setAddGroupsSearch($pData) { if( $pData) { if( $this->db ) { $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'groups_search_jabberit';"; if( $this->db->query($query) ) { while( $this->db->next_record()) $result[] = $this->db->row(); } if( count($result) == 0 ) { $query = "INSERT INTO phpgw_config(config_app,config_name,config_value) VALUES('phpgwapi','groups_search_jabberit','".serialize($pData)."');"; $this->db->query($query); return true; } else { $keyLdap = array_keys($pData); $resultQuery = unserialize($result[0]['config_value']); if( is_array(unserialize($pData[$keyLdap[0]])) ) $resultQuery[$keyLdap[0]] = $pData[$keyLdap[0]]; else unset($resultQuery[$keyLdap[0]]); if( count($resultQuery)) $query = "UPDATE phpgw_config SET config_value = '".serialize($resultQuery)."' WHERE config_app = 'phpgwapi' AND config_name = 'groups_search_jabberit';"; else $query = "DELETE FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'groups_search_jabberit';"; $this->db->query($query); return true; } } } } public final function setGroupsLocked($pGroups) { $groups = ""; if( is_array($pGroups) ) { foreach($pGroups as $tmp) if(trim($tmp) != "") $groups .= $tmp . ";"; $groups = substr($groups, 0, strlen($groups) - 1 ); } if( $this->db ) { $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'groups_locked_jabberit';"; if($this->db->query($query)) { if ( $this->db->query($query) ) { while($this->db->next_record()) $result[] = $this->db->row(); } if( count($result) == 0 ) { $query = "INSERT INTO phpgw_config(config_app,config_name,config_value) VALUES('phpgwapi','groups_locked_jabberit','".$groups."');"; $this->db->query($query); return true; } else { $query = "UPDATE phpgw_config SET config_value = '".trim($groups)."' WHERE config_app = 'phpgwapi' AND config_name = 'groups_locked_jabberit';"; $this->db->query($query); return true; } } } return false; } public final function setHostJabber($pParam) { $confHostsJabber = array(); foreach($pParam as $key => $itens) $confHostsJabber[$key] = ( $key === 'org' ) ? strtoupper($itens) : $itens; if( $this->db ) { $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'map_org_realm_jabberit';"; if( $this->db->query($query) ) { while($this->db->next_record()) $result[] = $this->db->row(); } if( count($result) == 0 ) { $return = "".strtoupper($confHostsJabber['org']).":".$confHostsJabber['jabberName'].""; $hostsJabber[0] = $confHostsJabber; $this->fileD->ldapExternal($hostsJabber); $query = "INSERT INTO phpgw_config(config_app, config_name, config_value) VALUES('phpgwapi','map_org_realm_jabberit','".serialize($hostsJabber)."')"; $this->db->query($query); } else { $resultQuery = unserialize($result[0]['config_value']); $foundOrg = false; foreach($resultQuery as $key => $itens) { $foundString = array_search($confHostsJabber['org'], $itens); if( $foundString ) { $foundOrg = $foundString; $ky = $key; } } if( ! $foundOrg ) $resultQuery[] = $confHostsJabber; else $resultQuery[$ky] = $confHostsJabber; $return = ""; foreach( $resultQuery as $itens ) $return .= "".$itens['org'].":".$itens['jabberName'].""; $return .= ""; $this->fileD->ldapExternal($resultQuery); $query = "UPDATE phpgw_config SET config_value = '".serialize($resultQuery)."' WHERE config_name = 'map_org_realm_jabberit';"; $this->db->query($query); } return $return; } return false; } public final function setOuGroupsLocked($pGroup) { function strallpos($haystack, $needle, $offset = 0) { $result = array(); for($i = $offset; $i< strlen($haystack); $i++ ) { $pos = strpos($haystack,$needle,$i); if($pos !== FALSE) { $offset = $pos; if($offset >= $i) $result[] = $i = $offset; } } return $result; } $group = $pGroup['group']; $gidnumber = $pGroup['gidnumber']; $organization = strtoupper(trim($pGroup['ou'])); $posAll = strallpos($organization, "OU=" ); $orgs = array(); for( $i = 0 ; $i < count($posAll); $i++ ) { $pos = strpos($organization, ","); $tmpString = substr($organization, $posAll[$i] + 3); $orgs[] = substr($tmpString, 0, strpos($tmpString, ",")); } $organization = implode("/", array_reverse($orgs)); if( $this->db ) { $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'groups_locked_jabberit';"; if($this->db->query($query)) { if ( $this->db->query($query) ) { while($this->db->next_record()) $result[] = $this->db->row(); } $groupsLocked = explode(";",$result[0]['config_value']); foreach( $groupsLocked as $tmp ) { $aux = explode(":", $tmp); if(($group.":".$gidnumber) == ($aux[0].":".$aux[1])) { if( $aux[2] ) { $ou_groups = explode(",",$aux[2]); natcasesort($ou_groups); $key = array_search($organization, $ou_groups); if( $key === false ) array_push($ou_groups, $organization); $groups .= $group.":".$gidnumber.":"; $return = ""; foreach($ou_groups as $tmp) { $return .= "".$tmp.""; $groups .= $tmp .","; } $return .= ""; $groups = substr($groups,0,strlen($groups)-1); $groups .= ";"; } else { $groups .= $group.":".$gidnumber.":".$organization.";"; $return = "".$organization.""; } } else $groups .= $tmp . ";" ; } $groups = substr($groups,0,strlen($groups)-1); $query = "UPDATE phpgw_config SET config_value = '".trim($groups)."' WHERE config_app = 'phpgwapi' AND config_name = 'groups_locked_jabberit';"; $this->db->query($query); return $return; } } return false; } public final function removeAttributesLdap($pOrg) { $organization = $pOrg['org']; if( $this->db ) { $query = "SELECT * from phpgw_config WHERE config_app = 'phpgwapi' and config_name = 'attributes_org_ldap_jabberit'"; if ( $this->db->query($query) ) { while( $this->db->next_record() ) $result[] = $this->db->row(); if( count($result) > 0 ) $attributesOrg = $result[0]['config_value']; } $attributesOrg = explode(",", $attributesOrg); $newValue = ""; foreach($attributesOrg as $tmp) { $attr = explode(";",$tmp); if( strtolower(trim($attr[0])) != strtolower(trim($organization))) { $newValue .= $attr[0] . ";" . $attr[1] . ","; } } $newValue = substr($newValue, 0,(strlen($newValue) -1 )); if( trim($newValue) != "") $query = "UPDATE phpgw_config SET config_value = '".$newValue."' WHERE config_app = 'phpgwapi' AND config_name = 'attributes_org_ldap_jabberit'"; else $query = "DELETE from phpgw_config where config_name = 'attributes_org_ldap_jabberit'"; if( $this->db->query($query)) return true; else return false; } return false; } public final function removeHostsJabber($pItem) { $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'map_org_realm_jabberit';"; if( $this->db ) { if($this->db->query($query)) { while($this->db->next_record()) $result[] = $this->db->row(); if( count($result) > 0 ) { $confHostsOrgs = unserialize($result[0]['config_value']); $hosts = explode(":", $pItem['item']); $key = ""; if( count($confHostsOrgs) > 0 ) { for( $i = 0; $i < count($confHostsOrgs); $i++) if( $confHostsOrgs[$i]['org'] == $hosts[0] && $confHostsOrgs[$i]['jabberName'] == $hosts[1]) $key = $i; array_splice($confHostsOrgs, $key, 1); if(count($confHostsOrgs) > 0) { $this->fileD->ldapExternal($confHostsOrgs); $query = "UPDATE phpgw_config SET config_value = '".serialize($confHostsOrgs)."' WHERE config_name = 'map_org_realm_jabberit';"; } else { $this->fileD->ldapExternal(""); $query = "DELETE FROM phpgw_config WHERE config_name = 'map_org_realm_jabberit';"; } } else { $this->fileD->ldapExternal(""); $query = "DELETE FROM phpgw_config WHERE config_name = 'map_org_realm_jabberit';"; } if( $this->db->query($query) ) return "true"; } } } return "false"; } public final function removeOuGroupsLocked($pGroup) { $group = $pGroup['group']; $gidnumber = $pGroup['gidnumber']; $organization = strtoupper($pGroup['ou']); $return = false; if( $this->db ) { $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'groups_locked_jabberit';"; if($this->db->query($query)) { if ( $this->db->query($query) ) { while($this->db->next_record()) $result[] = $this->db->row(); } $groupsLocked = explode(";",$result[0]['config_value']); foreach( $groupsLocked as $tmp ) { $aux = explode(":",$tmp); if(($group.":".$gidnumber) == ($aux[0].":".$aux[1])) { $ous = explode(",", $aux[2]); $key = array_search($organization, $ous); if( $key !== false ) unset($ous[$key]); $groups .= $group.":".$gidnumber.":"; foreach($ous as $ouTmp) $groups .= $ouTmp .","; $groups = substr($groups,0,strlen($groups)-1); $groups .= ";"; } else $groups .= $tmp . ";" ; } $groups = substr($groups,0,strlen($groups)-1); $query = "UPDATE phpgw_config SET config_value = '".trim($groups)."' WHERE config_app = 'phpgwapi' AND config_name = 'groups_locked_jabberit';"; if( $this->db->query($query)) $return = true; } } return $return; } } ?>