Code

Added magic_quotes fix for Profile
[gosa.git] / plugins / admin / systems / class_phoneGeneric.inc
index 50ac4d3c292ddf4875f51887904c8e19107a2698..ad6b5e61c6a045914c1a8c6d3a13c74ec4686519 100644 (file)
@@ -85,15 +85,17 @@ class phoneGeneric extends plugin
     } else {
       $this->selected_categorie = 0;
     }
+
+    if($this->goFonDefaultIP!="dynamic"){
+      $this->goFonDefaultIP = "network";
+    }
+
     /* Save dn for later references */
     $this->orig_dn= $this->dn;
   }
 
   function execute()
   {
-  
     /* Do we represent a valid phone? */
     if (!$this->is_account && $this->parent == NULL){
       $display= "<img alt=\"\" src=\"images/stop.png\" align=middle>&nbsp;<b>".
@@ -204,6 +206,15 @@ class phoneGeneric extends plugin
   function remove_from_parent()
   {
     $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+
+    $ldap->search ("(&(objectClass=goFonAccount)(goFonHardware=".$this->cn."))", array("uid","cn"));
+    while ($attr =  $ldap->fetch()){
+      print_red(sprintf(_("Can't delete because there are user which are depending on this phone. One of them is user '%s'."),
+        ($attr['uid'][0]." - ".$attr['cn'][0])));
+      return;
+    }
+
     $ldap->rmdir($this->dn);
     show_ldap_error($ldap->get_error());
     $this->handle_post_events("remove");
@@ -333,7 +344,11 @@ class phoneGeneric extends plugin
       }
       $this->attrs= $attrs;
     }
-    
+
+    if($this->goFonDefaultIP!="dynamic"){
+      $this->attrs['goFonDefaultIP'] = $this->ipHostNumber;
+    }    
+
     /* Write back to ldap */
     $ldap= $this->config->get_ldap_link();
     if ($this->orig_dn == 'new'){
@@ -349,6 +364,15 @@ class phoneGeneric extends plugin
 
       $ldap->cd($this->dn);
       $ldap->modify($this->attrs);
+      // $user_phone_reload   
+      $ldap->cd ($this->config->current['BASE']); 
+      $user_phone_assignment = $ldap->fetch($ldap->search("(&(objectClass=goFonAccount)(goFonHardware=".$this->cn."))",array("uid")));
+      if($user_phone_assignment){
+        $usertab= new usertabs($this->config,$this->config->data['TABS']['USERTABS'], $user_phone_assignment['dn']);
+        $usertab->by_object['phoneAccount']->is_modified = true;
+        $usertab->save();
+        unset($usertab);
+      }
       $this->handle_post_events("modify");
     }
     show_ldap_error($ldap->get_error());