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 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']);
}
return "openWindowJabberit:true;openWindowJabberitPopUp:false;flagAwayIM:5";
}
public final function setPreferences($pParam)
{
$preferences = $pParam['preferences1'];
if(isset($pParam['preferences2']))
$preferences .= ";". $pParam['preferences2'];
if(isset($pParam['preferences3']))
$preferences .= ";". $pParam['preferences3'];
$user_id = $this->user_id;
$query = "insert into phpgw_preferences values('".$user_id."','jabberit_messenger','".serialize($preferences)."')";
if($this->db->query($query))
{
return "true";
}
else
{
$query = "update phpgw_preferences set preference_value = '".serialize($preferences)."' where preference_app='jabberit_messenger' and preference_owner='".$user_id."'";
if($this->db->query($query))
return "true";
else
return "false";
}
}
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 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)
{
$group = $pGroup['group'];
$gidnumber = $pGroup['gidnumber'];
$organization = strtoupper($pGroup['ou']);
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;
}
}
?>