X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fgofon%2Fphoneaccount%2Fclass_phoneAccount.inc;h=819b5b2da46c90e7cf98e978c41d8d63e0d55bd8;hb=bf00497bf90223b2c4b175f60f6d787e879d335d;hp=9741b68aff921b6560e555c843b3ed2707a7f570;hpb=dae1222a9ee143fe9ad387e698dd19f6131f4e40;p=gosa.git diff --git a/plugins/gofon/phoneaccount/class_phoneAccount.inc b/plugins/gofon/phoneaccount/class_phoneAccount.inc index 9741b68af..819b5b2da 100644 --- a/plugins/gofon/phoneaccount/class_phoneAccount.inc +++ b/plugins/gofon/phoneaccount/class_phoneAccount.inc @@ -10,24 +10,22 @@ class phoneAccount extends plugin /* Attributes */ var $telephoneNumber = ""; var $goFonHardware = ""; - var $goFonForwarding = ""; var $goFonFormat = ""; var $goFonPIN = ""; + var $goFonVoicePIN = ""; var $goFonDeliveryMode = ""; var $phoneNumbers = array(); - var $forwarders = array(); var $mail = ""; var $hardware_list = array(); var $used_hardware = array(); var $goFonMacro = ""; - var $macro = 0; // Selected Macor + var $macro = 0; // Selected Macro var $macros = array(); // List of macros for smarty select box var $macroarray = array(); // All needed macro informations var $macrostillavailable = false; var $generate_error = ""; - var $a_old_telenums = array(); - var $uid; - var $cn; + var $a_old_telenums = array(); + var $goFonPINVoice = ""; /* CLI vars */ var $cli_summary = "Manage users phone account"; @@ -35,8 +33,8 @@ class phoneAccount extends plugin var $cli_parameters = array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser"); /* attribute list for save action */ - var $attributes = array("goFonDeliveryMode", "goFonForwarding", "goFonFormat", - "goFonHardware", "goFonPIN", "telephoneNumber", "goFonMacro","macro"); + var $attributes = array("goFonDeliveryMode", "goFonFormat","uid","cn","mail", + "goFonHardware","goFonPIN", "telephoneNumber", "goFonMacro","macro"); var $objectclasses= array("goFonAccount"); function phoneAccount ($config, $dn= NULL) @@ -60,15 +58,6 @@ class phoneAccount extends plugin $this->phoneNumbers[$number]= $number; } } - /* Assemble forwarders */ - if (isset($this->attrs['goFonForwarding'])){ - for ($i= 0; $i<$this->attrs['goFonForwarding']['count']; $i++){ - list($num, $v1, $v2) =split(';', $this->attrs['goFonForwarding'][$i]); - $this->forwarders[$num]= "$v1;$v2"; - } - } else { - $this->forwarders= array(""); - } /* Set up has_mailAccount */ if (isset($this->attrs['objectClass'])){ @@ -77,6 +66,34 @@ class phoneAccount extends plugin } } + $a_SETUP = $_SESSION['config']->data['SERVERS']['FON']; + $r_con = @mysql_pconnect($a_SETUP['SERVER'],$a_SETUP['LOGIN'],$a_SETUP['PASSWORD']); + if(!$r_con){ + $this->generate_error = sprintf(_("The MySQL Server '%s' isn't reachable as user '%s', check GOsa log for mysql error."), + $a_SETUP['SERVER'],$a_SETUP['LOGIN']); + gosa_log(mysql_error()); + return false; + } + $db = @mysql_select_db($a_SETUP['DB'],$r_con); + if(!$db){ + $this->generate_error = sprintf(_("Can't select database %s on %s."),$a_SETUP['DB'],$a_SETUP['SERVER']); + gosa_log(mysql_error()); + return false; + } + + $first = false; + foreach($this->phoneNumbers as $key => $val){ + if(!$first){ + $first = $key; + } + } + + $attrs = @mysql_fetch_row(@mysql_query("SELECT * FROM ".$a_SETUP['VOICE_TABLE']." WHERE customer_id=".$this->phoneNumbers[$first].";")); + if($attrs){ + $this->goFonPINVoice = $attrs[4]; + }else{ + $this->goFonPINVoice = false; + } /* Load hardware list */ $ldap= $this->config->get_ldap_link(); @@ -93,10 +110,6 @@ class phoneAccount extends plugin } - /* Prepare templating */ - $smarty= get_smarty(); - - /* Perform search, to get Macro Parameters,Name,Dn,Displayname etc*/ $ldap->search("(objectClass=goFonMacro)", array("*")); @@ -195,9 +208,32 @@ class phoneAccount extends plugin $this->hardware_list["automatic"]= _("automatic"); ksort($this->hardware_list); $this->a_old_telenums = $this->phoneNumbers; - } + if($this->is_account){ + $this->is_modified = true; + } + + /* Set PINs to false, + * to avoid setting them before we explicitly + * pressed set voicemail PIN or Phone PIN + */ + if(count(split("\|",$this->goFonPIN))==2){ + $tmp = split("\|",$this->goFonPIN); + $this->goFonPIN = $tmp[0]; + $this->goFonVoicePIN = $tmp[1]; + }else{ + $this->goFonVoicePIN = $this->goFonPIN; + } + + // Unset goFonPIN, to avoid save_object for this attribute + foreach($this->attributes as $key=>$val){ + if($val == "goFonPIN"){ + unset($this->attributes[$key]); + } + } + + } // Generate MySQL Syntax @@ -264,13 +300,38 @@ class phoneAccount extends plugin return false; } - - + $existence = @mysql_fetch_row(@mysql_query( "SELECT * FROM ".$a_SETUP['SIP_TABLE']." WHERE name='".$this->uid."';")); + + if(!$existence&&((empty($this->goFonPIN))||(empty($this->goFonVoicePIN)))){ + $this->generate_error = _("You are currently creating a new phone account, please specify a value for phone PIN and voice PIN."); + return(false); + } + + if((empty($this->goFonPIN))&&(empty($existence[27]))){ + $this->generate_error = _("The PIN attribute is missing in database entry. Please assign a valid phone PIN."); + return(false); + } + + if(isset($existence[15])){ + $voice = @mysql_fetch_row(@mysql_query("SELECT password FROM ".$a_SETUP['VOICE_TABLE']." where customer_id='".$existence[15]."'")); + if((empty($this->goFonVoicePIN))&&(empty($voice[0]))){ + $this->generate_error = _("The voice PIN attribute is missing in database entry. Please assign a valid voice PIN."); + return(false); + } + } + /* If Save == true, we should save something. * Generate SQL, for drop of old entries - * Generate SQL, for insert of new entries + * Generate SQL, for insert new entries */ if($save == true){ + + /* Get old voice passwword if no new isset */ + if($this->goFonPIN==false){ + $pin = @mysql_fetch_row(@mysql_query("SELECT secret FROM ".$a_SETUP['SIP_TABLE']." where name='".$this->uid."'")); + $this->goFonPIN = $pin[0]; + } + // Attribute GoFonDefaultIP set ? if(((isset($a_ldap_attrs['goFonDefaultIP'][0]))&&($a_ldap_attrs['goFonDefaultIP'][0] != "dynamic"))){ $s_ip = $a_ldap_attrs['goFonDefaultIP'][0]; @@ -308,7 +369,7 @@ class phoneAccount extends plugin $sip_data_array['amaflags'] = NULL; $sip_data_array['callgroup'] = NULL; $sip_data_array['callerid'] = ""; - $sip_data_array['canreinvite'] = "yes"; + $sip_data_array['canreinvite'] = "no"; $sip_data_array['context'] = "default"; $sip_data_array['defaultip'] = NULL; $sip_data_array['fromuser'] = NULL; @@ -359,12 +420,25 @@ class phoneAccount extends plugin $sip_entry['callerid'] =$this->phoneNumbers[$i_new_key]; $sip_entry['mailbox'] =$this->phoneNumbers[$i_new_key]; - if((isset($this->parent->by_object['mailAccount']->mail))&&($this->parent->by_object['mailAccount']->is_account==true)){ + if((isset($this->parent))&&(isset($this->parent->by_object['mailAccount']))&&($this->parent->by_object['mailAccount']->is_account==true)){ $s_mail = $this->parent->by_object['mailAccount']->mail; }else{ $s_mail = ""; } + + /* Get old voice passwword if no new isset */ + if($this->goFonVoicePIN==false){ + $voice = @mysql_fetch_row(@mysql_query("SELECT password FROM ".$a_SETUP['VOICE_TABLE']." where customer_id=".$this->phoneNumbers[$i_new_key]."")); + $this->goFonVoicePIN = $voice[0]; + } + + /* Get old voice passwword if no new isset */ + if($this->goFonPIN==false){ + $pin = @mysql_fetch_row(@mysql_query("SELECT secret FROM ".$a_SETUP['SIP_TABLE']." where name='".$this->uid."'")); + $this->goFonPIN = $pin[0]; + } + // $SQL contains all queries $SQL = array(); $SQL[] = "DELETE FROM ".$a_SETUP['EXT_TABLE']." WHERE exten='".$this->uid."';\n"; @@ -394,27 +468,60 @@ class phoneAccount extends plugin } } - $SQL[]= "INSERT INTO ".$a_SETUP['VOICE_TABLE']." - (`customer_id`,`context`,`mailbox`,`password`,`fullname`,`email`,`pager`) - VALUES - ('".$this->phoneNumbers[$i_new_key]."','default','".$this->phoneNumbers[$i_new_key]."','".$this->goFonPIN."','".$this->sn."','".$s_mail."','');"; + if(empty($this->goFonPINVoice)){ + $this->goFonPINVoice = $this->goFonPIN; + } - $i_is_accounted=false; + /* If deletion starts from userslist, cn uid are not set */ + if((isset($this->parent->by_object['user']->uid))&&(!empty($this->parent->by_object['user']->uid))){ + $this->uid = $this->parent->by_object['user']->uid; + } + if((isset($this->parent->by_object['user']->cn))&&(!empty($this->parent->by_object['user']->cn))){ + $this->cn = $this->parent->by_object['user']->cn; + } + + if((!isset($this->cn))||(empty($this->cn))){ + $CNname= $this->uid; + }else{ + $CNname= $this->cn; + } + + $SQL[]= "INSERT INTO ".$a_SETUP['VOICE_TABLE']." (`customer_id`,`context`,`mailbox`,`password`,`fullname`,`email`,`pager`) + VALUES ('".$this->phoneNumbers[$i_new_key]."', + 'default', + '".$this->phoneNumbers[$i_new_key]."', + '".$this->goFonVoicePIN."', + '".$CNname."', + '".$s_mail."', + '');"; + $i_is_accounted=false; + + $i = 0; + // Entension entries Hint / Dial / Goto foreach($this->phoneNumbers as $s_telenums){ - // Entry to call by name - $s_entry_name['context'] = 'GOsa'; - $s_entry_name['exten'] = $this->uid; - $s_entry_name['priority'] = 1; - $s_entry_name['app'] = 'Goto'; - $s_entry_name['appdata'] = $s_telenums."|1"; - - // hint - $s_entry_hint['context'] = 'GOsa'; - $s_entry_hint['exten'] = $s_telenums; - $s_entry_hint['priority'] = 'hint'; - $s_entry_hint['app'] = 'SIP/'.$this->uid; + + /* Mapping : Name TO Number*/ + $EXT[$i]['context'] = 'GOsa'; + $EXT[$i]['exten'] = $this->uid; + $EXT[$i]['priority']= 1; + $EXT[$i]['app'] = "Goto"; + $EXT[$i]['appdata'] = $s_telenums."|1"; + $i ++; + /* Hint Entry */ + $EXT[$i]['context'] = 'GOsa'; + $EXT[$i]['exten'] = $s_telenums; + $EXT[$i]['priority']= "Hint"; + $EXT[$i]['app'] = 'SIP/'.$this->uid; + $i ++; + /* SetCID */ + $EXT[$i]['context'] = 'GOsa'; + $EXT[$i]['exten'] = $s_telenums; + $EXT[$i]['priority']= 1; + $EXT[$i]['app'] = "SetCIDName"; + $EXT[$i]['appdata'] = $CNname; + $i ++; // If no macro is selected use Dial if($this->macro!="none"){ @@ -427,44 +534,35 @@ class phoneAccount extends plugin $s_par = 'SIP/'.$this->uid; } - // Entry to call by number - $s_entry_phone['context'] = 'GOsa'; - $s_entry_phone['exten'] = $s_telenums; - $s_entry_phone['priority'] = 1; - $s_entry_phone['app'] = $s_app; - $s_entry_phone['appdata'] = $s_par; - - // append name entry only once - if(!$i_is_accounted){ - $i_is_accounted = true; - $entries[]=array("hint"=>$s_entry_hint,"phone"=>$s_entry_phone,"name"=>$s_entry_name); - }else{ - $entries[]=array("hint"=>$s_entry_hint,"phone"=>$s_entry_phone); - } + $EXT[$i]['context'] = 'GOsa'; + $EXT[$i]['exten'] = $s_telenums; + $EXT[$i]['priority']= 2; + $EXT[$i]['app'] = $s_app; + $EXT[$i]['appdata'] = $s_par; + $i ++; + } // Append all these Entries - foreach($entries as $num => $val){ - foreach($val as $entr){ - $SQL_syn = "INSERT INTO ".$a_SETUP['EXT_TABLE']." ("; - foreach($entr as $key2 => $val2){ - $SQL_syn.= "`".$key2."`,"; - } - $SQL_syn = preg_replace("/,$/","",$SQL_syn); - $SQL_syn .= ") VALUES ("; - foreach($entr as $key2 => $val2){ - $SQL_syn .= "'".$val2."',"; - } - $SQL_syn = preg_replace("/,$/","",$SQL_syn); - $SQL_syn .=");\n"; - $SQL[] =$SQL_syn; - $SQL_syn =""; + foreach($EXT as $entr){ + $SQL_syn = "INSERT INTO ".$a_SETUP['EXT_TABLE']." ("; + foreach($entr as $key2 => $val2){ + $SQL_syn.= "`".$key2."`,"; } + $SQL_syn = preg_replace("/,$/","",$SQL_syn); + $SQL_syn .= ") VALUES ("; + foreach($entr as $key2 => $val2){ + $SQL_syn .= "'".$val2."',"; + } + $SQL_syn = preg_replace("/,$/","",$SQL_syn); + $SQL_syn .=");\n"; + $SQL[] =$SQL_syn; + $SQL_syn =""; } // Perform queries ... foreach($SQL as $query){ - if(!mysql_query($query,$r_con)){ + if(!@mysql_query($query,$r_con)){ print_red(_("Error while performing query ".mysql_error())); return false; } @@ -474,28 +572,15 @@ class phoneAccount extends plugin } - - - - - - - - - - - - function execute() { - /* force postmodify event, to restart phones */ - - $this->parent->by_object['user']->is_modified=TRUE; - $this->is_modified=TRUE; - - $this->uid = $this->parent->by_object['user']->uid; - $this->cn = $this->parent->by_object['user']->cn; - + /* Do we represent a valid account? */ + if (!$this->is_account && $this->parent == NULL){ + $display= "\"\" ". + _("This account has no phone extensions.").""; + $display.= back_to_main(); + return ($display); + } /* Do we need to flip is_account state? */ if (isset($_POST['modify_state'])){ @@ -507,9 +592,33 @@ class phoneAccount extends plugin $this->macro ="none"; } + if(isset($_POST['goFonVoicePINSet'])){ + if((strlen($_POST['goFonVoicePIN'])==0)||(strlen($_POST['goFonVoicePIN'])>4)){ + print_red(_("Voicemail PIN must be between 1-4 characters.")); + }else{ + if(preg_match("/[^0-9]/",$_POST['goFonVoicePIN'])){ + print_red(_("The specified Voicemail PIN contains invalid characters, only numeric values are allowed here.")); + }else{ + $this->goFonVoicePIN=$_POST['goFonVoicePIN']; + } + } + } + + if(isset($_POST['goFonPINSet'])){ + if((strlen($_POST['goFonPIN'])!=4)){ + print_red(_("Phone PIN must be 4 characters long.")); + }else{ + if(preg_match("/[^0-9]/",$_POST['goFonVoicePIN'])){ + print_red(_("The specified phone PIN contains invalid characters, only numeric values are allowed here.")); + }else{ + $this->goFonPIN=$_POST['goFonPIN']; + } + } + } + /* tell user that the pluging selected is no longer available*/ if((!$this->macrostillavailable)&&($this->macro!="none")){ - print_red(_("The macro you selected in the past, is no longer available for you, please choose another one.")); + print_red(_("The macro you selected, is no longer available for you, please choose another one.")); } /* Prepare templating */ @@ -541,7 +650,10 @@ class phoneAccount extends plugin $string = $paras['default']; $string=preg_replace("/%uid/i",$this->uid,$string); - $string=preg_replace("/%cn/i",$this->cn,$string); + + if(isset($this->cn)){ + $string=preg_replace("/%cn/i",$this->cn,$string); + } for($i = 0 ; $i < 10; $i++){ if(isset($tmp[$i])){ @@ -577,7 +689,7 @@ class phoneAccount extends plugin } } $str.=""; - $macrotab.= "$name$str"; + $macrotab.= "".base64_decode($name)."$str"; break; case "bool": @@ -650,22 +762,14 @@ class phoneAccount extends plugin } } - /* Check for forwarding action */ - foreach ($this->forwarders as $nr => $fw){ - - /* Buttons pressed? */ - if (isset($_POST["add_fw$nr"])){ - $this->forwarders= $this->insert_after("", $nr, $this->forwarders); - } - if (isset($_POST["remove_fw$nr"])){ - unset($this->forwarders[$nr]); - } - } - /* Transfer ACL's */ foreach($this->attributes as $val){ $smarty->assign($val."ACL", chkacl($this->acl, "$val")); - $smarty->assign($val,$this->$val); + if(isset($this->$val)){ + $smarty->assign($val,$this->$val); + }else{ + $smarty->assign($val,""); + } } /* Fill arrays */ @@ -693,29 +797,14 @@ class phoneAccount extends plugin $hl.= "\n"; $smarty->assign ("hardware_list", $hl); - /* Generate forwarder view */ - $forwarder_list=""; - $acl= chkacl($this->acl, "goFonForwaring"); - foreach ($this->forwarders as $nr => $fw){ - if ($fw == ""){ - $number= ""; $timeout= ""; - } else { - list($number, $timeout)= split(";", $fw); - } - $forwarder_list.= ""; - $forwarder_list.= ""; - $forwarder_list.= ""; - $forwarder_list.= ""; - $forwarder_list.= ""; - $forwarder_list.= ""; - if (count($this->forwarders) > 1){ - $forwarder_list.= ""; - } - $forwarder_list.= ""; + /* Show main page */ + + foreach(array("goFonVoicePIN","goFonPIN") as $attrs ){ + $smarty->assign($attrs,$this->$attrs); + $smarty->assign($attrs."ACL",chkacl($this->acl,$attrs)); } - $smarty->assign("forwarder_list", $forwarder_list); - /* Show main page */ + $display.= $smarty->fetch(get_template_path('generic.tpl', TRUE, dirname(__FILE__))); return($display); } @@ -739,17 +828,6 @@ class phoneAccount extends plugin $this->goFonDeliveryMode= $tmp; } - /* Save forwarding numbers and timeouts */ - if (chkacl ($this->acl, "goFonForwarder") == ""){ - foreach ($this->forwarders as $nr => $fw){ - $tmp= $_POST["fwn$nr"].";".$_POST["fwt$nr"]; - if ($this->forwarders[$nr] != $tmp){ - $this->is_modified= TRUE; - } - $this->forwarders[$nr]= $tmp; - } - } - /* Every macro in the select box are available */ if((isset($_POST['macro']))){ $this->macrostillavailable=true; @@ -767,25 +845,7 @@ class phoneAccount extends plugin if(isset($this->macroarray[$this->macro])){ foreach($this->macroarray[$this->macro] as $key => $paras){ if(isset($_POST[$paras['var']])){ - // $par = $this->macroarray[$this->macro][$key]; - // $string = ""; - // if(preg_match("/.*%telephoneNumber_.*/",$par['default'])){ - // $string = $par['default']; - // foreach($nummsinorder as $nummsinorderkey=> $nummsinorderval){ - // $string = (str_replace("%telephoneNumber_".($nummsinorderkey+1),$nummsinorderval,$string)); - // } - // } - - // if(preg_match("/.*%uid.*/",$par['default'])){ - // if(empty($string)) $string = $par['default']; - // $string = str_replace("%uid",$this->uid,$string); - // } - - // if(!empty($string)){ - // $this->macroarray[$this->macro][$key]['choosen'] = $string; - // }else{ $this->macroarray[$this->macro][$key]['choosen'] = $_POST[$paras['var']]; - // } } /* Checkboxes are special, they are not Posted if they are not selected, so the won't be changed with the above code @@ -820,34 +880,6 @@ class phoneAccount extends plugin $message[]= sprintf(_("You need to specify at least one phone number!")); } - if(($this->goFonPIN)==""){ - $message[]= sprintf(_("You need to specify a Phone PIN.")); - }else{ - if(strcmp ((int)($this->goFonPIN),($this->goFonPIN))){ - $message[] = sprintf(_("The given PIN is not valid, only numbers are allowed for this type.")); - }elseif(strlen($this->goFonPIN) < 4){ - $message[] = sprintf(_("The given PIN is too short")); - } - - } - /* Check timestamps and phonenumbers */ - foreach ($this->forwarders as $fw){ - - /* Skip empty values */ - if ($fw == ";"){ - continue; - } - - /* Check */ - list($number, $timeout)= split(";", $fw); - if (!is_phone_nr($number)){ - $message[]= sprintf(_("The number '%s' is no valid phone number!"), $number); - } - if (!is_id($timeout)){ - $message[]= sprintf(_("The timeout '%s' contains invalid characters!"), $timeout); - } - } - /* check for ! in any parameter setting*/ if(isset($this->macroarray[$this->macro])){ foreach($this->macroarray[$this->macro] as $val){ @@ -870,10 +902,6 @@ class phoneAccount extends plugin foreach ($this->phoneNumbers as $number){ $this->attrs['telephoneNumber'][]= $number; } - $this->attrs['goFonForwarding']= array(); - foreach ($this->forwarders as $index => $number){ - $this->attrs['goFonForwarding'][]= "$index;$number"; - } /* Save settings, or remove goFonMacro attribute*/ if($this->macro!="none"){ @@ -888,11 +916,19 @@ class phoneAccount extends plugin } unset($this->attrs['macro']) ; + $this->attrs['goFonForwarding']=array(); + $this->generate_mysql_entension_entries(true); if($this->attrs['goFonMacro']==""){ $this->attrs['goFonMacro']=array(); } + + /* Cahnged behavior for goFonPIN */ + $this->attrs['goFonPIN'] = $this->goFonPIN."|".$this->goFonVoicePIN; + + unset($this->attrs['cn']); + /* Write back to ldap */ $ldap= $this->config->get_ldap_link(); $ldap->cd($this->dn); @@ -945,33 +981,33 @@ class phoneAccount extends plugin $this->phoneNumbers[$number]= $number; } } - - /* Assemble forwarders */ - if (isset($this->attrs['goFonForwarding'])){ - for ($i= 0; $i<$this->attrs['goFonForwarding']['count']; $i++){ - list($num, $v1, $v2) =split(';', $this->attrs['goFonForwarding'][$i]); - $this->forwarders[$num]= "$v1;$v2"; - } - } else { - $this->forwarders= array(""); - } } function remove_from_parent() { + + foreach($this->attributes as $key=>$val){ + if(in_array($val,array("uid","cn","mail"))){ + unset($this->attributes[$key]); + unset($this->$val); + } + } + + $this->attributes[]="goFonPIN"; + // Get Configuration for Mysql database Server $a_SETUP = $_SESSION['config']->data['SERVERS']['FON']; $s_parameter =""; // Connect to DB server - $r_con = @mysql_connect($a_SETUP['SERVER'],$a_SETUP['LOGIN'],$a_SETUP['PASSWORD']); + $r_con = @mysql_pconnect($a_SETUP['SERVER'],$a_SETUP['LOGIN'],$a_SETUP['PASSWORD']); // Check if we are connected correctly if(!$r_con){ $this->generate_error = sprintf(_("The MySQL Server '%s' isn't reachable as user '%s', check GOsa log for mysql error."), $a_SETUP['SERVER'],$a_SETUP['LOGIN']); - gosa_log(mysql_error()); + gosa_log(@mysql_error()); return false; } @@ -981,15 +1017,20 @@ class phoneAccount extends plugin // Test if we have the database selected correctly if(!$db){ $this->generate_error = sprintf(_("Can't select database %s on %s."),$a_SETUP['DB'],$a_SETUP['SERVER']); - gosa_log(mysql_error()); + gosa_log(@mysql_error()); return false; } $SQL=""; /* If deletion starts from userslist, cn uid are not set */ - $this->uid = $this->parent->by_object['user']->uid; - $this->cn = $this->parent->by_object['user']->cn; + if((isset($this->parent->by_object['user']->uid))&&(!empty($this->parent->by_object['user']->uid))){ + $this->uid = $this->parent->by_object['user']->uid; + } + + if((isset($this->parent->by_object['user']->cn))&&(!empty($this->parent->by_object['user']->cn))){ + $this->cn = $this->parent->by_object['user']->cn; + } $first_num = false; // Delete old entries @@ -1006,7 +1047,7 @@ class phoneAccount extends plugin foreach($SQL as $query){ - if(!mysql_query($query,$r_con)){ + if(!@mysql_query($query,$r_con)){ print_red(_("Stop".mysql_error())); return false; } @@ -1060,7 +1101,7 @@ class phoneAccount extends plugin { $ldap= $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']); - $ldap->search("(|(objectClass=goFonAccount)(objectClass=goFonQueue))", array("telephoneNumber","cn","uid")); + $ldap->search("(|(objectClass=goFonAccount)(objectClass=goFonQueue)(objectClass=goFonConference))", array("telephoneNumber","cn","uid")); while($attrs = $ldap->fetch()) { unset($attrs['telephoneNumber']['count']); foreach($attrs['telephoneNumber'] as $tele){ @@ -1082,8 +1123,6 @@ class phoneAccount extends plugin } } } - - } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: