Code

Removed pass-by-reference
[gosa.git] / gosa-plugins / goto / admin / mimetypes / class_mimetypeGeneric.inc
index 4bd6e9d0bb3f66d12a6ba48699782a20554d497f..c5d52cf27d5a8d639de01f0ab5153e2b6d4d2414 100644 (file)
@@ -37,9 +37,6 @@ class mimetype extends plugin
   var $DivApps                                                             = NULL;
   var $DivEApps                                                                    = NULL;
 
-  /* Mime type release mode */
-  var $isReleaseMimeType                                             = false;
-
   /* These vars will be copied too, if you use copy&paste mode */
   var $CopyPasteVars        = array("use_gotoMimeFilePattern","use_gotoMimeApplication","use_gotoMimeEmbeddedApplication","iconData",
                                     "gotoMimeLeftClickAction_I","gotoMimeLeftClickAction_E","gotoMimeLeftClickAction_Q","use_gotoMimeIcon");
@@ -120,12 +117,6 @@ class mimetype extends plugin
       }
     }
 
-    /* Check if release Management is enabled */
-    $tmp = $this->config->search("faiManagement", "CLASS",array('menu','tabs'));
-    if(!empty($tmp)) {
-      $this->isReleaseMimeType= true;
-    }
-
     /* Set base */     
     if ($this->dn == "new"){
       if(session::is_set('CurrentMainBase')){
@@ -350,7 +341,7 @@ class mimetype extends plugin
     }                  
     $smarty->assign("bases",                                           $this->get_allowed_bases());            
     $smarty->assign("base_select",                                     $this->base);           
-    $smarty->assign("isReleaseMimeType",                       $this->isReleaseMimeType);
+    $smarty->assign("isReleaseMimeType",                       $this->is_release());
     $smarty->assign("gotoMimeFilePatterns",                    $DivPatterns->DrawList());
     $smarty->assign("gotoMimeApplications",                    $DivApps->DrawList());
     $smarty->assign("gotoMimeEmbeddedApplications",    $DivEApps->DrawList());
@@ -386,7 +377,7 @@ class mimetype extends plugin
       $this->base = $base_tmp;
   
       /* Only save base if we are not in release mode */
-      if(!$this->isReleaseMimeType){
+      if(!$this->is_release()){
 
         /* Set new base if allowed */
         $tmp = $this->get_allowed_bases();
@@ -540,31 +531,23 @@ class mimetype extends plugin
     $ldap = $this->config->get_ldap_link();
     $ldap->cd($this->config->current["BASE"]);
 
-    $mimefilter = session::get('mimefilter');
-  
-    if($this->isReleaseMimeType && (isset($mimefilter['release']))){
-      $baseDn = str_replace($this->config->current['BASE'],$this->base,$mimefilter['release']);
-      $baseDn = preg_replace("/".get_ou('mimetypeou').".*/",get_ou('mimetypeou').$this->base,$mimefilter['release']);
-      $ldap->ls("(&(objectClass=gotoMimeType)(cn=".$this->cn."))",$baseDn,array("cn"));
-      if($ldap->count()){
-        $attrs = $ldap->fetch();
-        if($this->dn != $attrs['dn']) {
-          $message[]= msgPool::duplicated(_("Name"));
-        }
-      }
+    if($this->is_release()){
+      $base = $this->parent->parent->mime_release;
     }else{
-      $ldap->ls("(&(objectClass=gotoMimeType)(cn=".$this->cn."))",get_ou('mimetypeou').$this->base,array("cn"));
-      if ($ldap->count()){
-        $attrs = $ldap->fetch();
-        if($this->dn != $attrs['dn']) {
-          $message[]= msgPool::duplicated(_("Name"));
-        }
-      }
+      $base = get_ou("mimetypeou").$this->base;
     }
 
+    $ldap->ls("(&(objectClass=gotoMimeType)(cn=".$this->cn."))",$base,array("cn"));
+    if($ldap->count()){
+      $attrs = $ldap->fetch();
+      if($this->dn != $attrs['dn']) {
+        $message[]= msgPool::duplicated("cn");
+      }
+    }
     return($message);
   }
 
+
   /** Helper functions **/
 
   /* Set a new picture */      
@@ -734,6 +717,22 @@ class mimetype extends plugin
 
   }
 
+
+  function is_release()
+  {
+    if(is_object($this->parent->parent)){
+      return($this->parent->parent->IsReleaseManagementActivated());
+    }else{
+      /* Check if we should enable the release selection */
+      $tmp = $this->config->search("faiManagement", "CLASS",array('menu','tabs'));
+      if(!empty($tmp)){
+        return(true);
+      }
+    }
+    return(FALSE);
+  }
+
+
   function PrepareForCopyPaste($source)
   {
     plugin::PrepareForCopyPaste($source);