Code

Fixed Ogroup Copy & Paste for workstation startup
[gosa.git] / plugins / gofon / phoneaccount / class_phoneAccount.inc
index 0c4363cde71a74283cca57043a16e1ce085dd439..0cf7ac03a6684df4a90025ec05e5a1f02382b3cc 100644 (file)
@@ -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,14 +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 $CopyPasteVars          = array("phoneNumbers");
+  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'])){
@@ -794,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);
     }
@@ -959,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));
     }
 
   }
@@ -1014,6 +1018,8 @@ $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"))){
         unset($this->attributes[$key]);
@@ -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));
   }