X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fgofon%2Fphoneaccount%2Fclass_phoneAccount.inc;h=0cf7ac03a6684df4a90025ec05e5a1f02382b3cc;hb=9ba37d0ddd9297f3eded1e12d899e939d9f15555;hp=09bd576170f8d124e48ae41f5a28198de34da149;hpb=8c73119fa17fedf86c437a701b5e0eb003831c15;p=gosa.git diff --git a/plugins/gofon/phoneaccount/class_phoneAccount.inc b/plugins/gofon/phoneaccount/class_phoneAccount.inc index 09bd57617..0cf7ac03a 100644 --- a/plugins/gofon/phoneaccount/class_phoneAccount.inc +++ b/plugins/gofon/phoneaccount/class_phoneAccount.inc @@ -8,7 +8,7 @@ class phoneAccount extends plugin var $has_mailAccount= FALSE; /* Attributes */ - var $telephoneNumber = ""; + var $telephoneNumber = array(); var $goFonHardware = ""; var $goFonFormat = ""; var $goFonPIN = ""; @@ -34,13 +34,18 @@ 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", "goFonFormat","uid","cn","mail", + var $CopyPasteVars = array("phoneNumbers","macroarray","macrostillavailable"/*"phoneNumbers" -Reset- */, + "hardware_list","used_hardware"); + + var $attributes = array("goFonDeliveryMode", "goFonFormat","uid","cn", "goFonHardware","goFonPIN","goFonVoicemailPIN","telephoneNumber", "goFonMacro","macro"); var $objectclasses= array("goFonAccount"); - function phoneAccount ($config, $dn= NULL) + var $uid; + + function phoneAccount ($config, $dn= NULL, $parent= NULL) { - plugin::plugin ($config, $dn); + plugin::plugin ($config, $dn, $parent); /* Set phone hardware */ if (!isset($this->attrs['goFonHardware'])){ @@ -793,7 +798,7 @@ class phoneAccount extends plugin /* Fill arrays */ $smarty->assign ("goFonHardware", $this->goFonHardware); if (!count($this->phoneNumbers)){ - $smarty->assign ("phoneNumbers", array("")); + $smarty->assign ("phoneNumbers", array()); } else { $smarty->assign ("phoneNumbers", $this->phoneNumbers); } @@ -880,8 +885,8 @@ class phoneAccount extends plugin function check() { - /* Reset message array */ - $message= array(); + /* Call common method to give check the hook */ + $message= plugin::check(); if((strlen($this->goFonVoicemailPIN)==0)||(strlen($this->goFonVoicemailPIN)>4)){ $message[]=(_("Voicemail PIN must be between 1-4 characters.")); @@ -958,18 +963,18 @@ class phoneAccount extends plugin $ldap= $this->config->get_ldap_link(); $ldap->cd($this->dn); $this->cleanup(); -$ldap->modify ($this->attrs); + $ldap->modify ($this->attrs); - show_ldap_error($ldap->get_error()); + show_ldap_error($ldap->get_error(), _("Saving phone account failed")); /* Optionally execute a command after we're done */ if ($this->initially_was_account == $this->is_account){ if ($this->is_modified){ - $this->handle_post_events("modify"); + $this->handle_post_events("modify",array("uid" => $this->uid)); } } else { - $this->handle_post_events("add"); + $this->handle_post_events("add",array("uid" => $this->uid)); } } @@ -1013,13 +1018,14 @@ $ldap->modify ($this->attrs); function remove_from_parent() { + if(!$this->initially_was_account) return; + foreach($this->attributes as $key=>$val){ - if(in_array($val,array("uid","cn","mail"))){ + if(in_array($val,array("uid","cn"))){ unset($this->attributes[$key]); unset($this->$val); } } - if(array_key_exists('config', $_SESSION) && array_key_exists('SERVERS', $_SESSION['config']->data) && array_key_exists('FON', $_SESSION['config']->data['SERVERS']) && @@ -1033,8 +1039,8 @@ $ldap->modify ($this->attrs); // 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']); + print_red(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; } @@ -1044,7 +1050,7 @@ $ldap->modify ($this->attrs); // 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']); + print_red(sprintf(_("Can't select database %s on %s."),$a_SETUP['DB'],$a_SETUP['SERVER'])); gosa_log(@mysql_error()); return false; } @@ -1118,13 +1124,13 @@ $ldap->modify ($this->attrs); } $ldap->cd($this->dn); $this->cleanup(); -$ldap->modify ($this->attrs); + $ldap->modify ($this->attrs); - show_ldap_error($ldap->get_error()); + show_ldap_error($ldap->get_error(), _("Removing phone account failed")); /* Optionally execute a command after we're done */ @mysql_close($r_con); - $this->handle_post_events('remove'); + $this->handle_post_events('remove',array("uid"=> $this->uid)); } @@ -1157,6 +1163,8 @@ $ldap->modify ($this->attrs); } } + + /* Create phoneAccount part of copy & paste dialog */ function getCopyDialog() { if(!$this->is_account) return(""); @@ -1177,6 +1185,7 @@ $ldap->modify ($this->attrs); return($ret); } + /* Save posts from copy & paste dialog dialog */ function saveCopyDialog() { if(!$this->is_account) return;