Code

Fixed post scripts
[gosa.git] / gosa-core / include / class_config.inc
index 0b4b92eb6aa63fb964f2ec1ec65261c75a61c775..3fc3650832165115ee4a83e6192e2c4538166521 100644 (file)
@@ -221,17 +221,17 @@ class config  {
     /* Check for connection */
     if (is_null($this->ldap) || (is_int($this->ldap) && $this->ldap == 0)){
       $smarty= get_smarty();
-      print_red (_("Can't bind to LDAP. Please contact the system administrator."));
-      display_error_page();
+      msg_dialog::display(_("LDAP error"), _("Cannot bind to LDAP. Please contact the system administrator."), FATAL_ERROR_DIALOG);
+      exit();
     }
 
-    if (!isset($_SESSION['size_limit'])){
+    if (!session::is_set('size_limit')){
       session::set('size_limit',$this->current['SIZELIMIT']);
       session::set('size_ignore',$this->current['SIZEIGNORE']);
     }
 
     if ($sizelimit){
-      $this->ldap->set_size_limit($_SESSION['size_limit']);
+      $this->ldap->set_size_limit(session::get('size_limit'));
     } else {
       $this->ldap->set_size_limit(0);
     }
@@ -494,16 +494,18 @@ class config  {
 
     /* Load Terminalservers */
     $ldap->cd ($this->current['BASE']);
-    $ldap->search ("(objectClass=goTerminalServer)");
+    $ldap->search ("(objectClass=goTerminalServer)",array("cn","gotoSessionType"));
     $this->data['SERVERS']['TERMINAL']= array();
     $this->data['SERVERS']['TERMINAL'][]= "default";
+    $this->data['SERVERS']['TERMINAL_SESSION_TYPES'] = array();
+
 
-    $this->data['SERVERS']['FONT']= array();
-    $this->data['SERVERS']['FONT'][]= "default";
     while ($attrs= $ldap->fetch()){
       $this->data['SERVERS']['TERMINAL'][]= $attrs["cn"][0];
-      for ($i= 0; $i<$attrs["goFontPath"]["count"]; $i++){
-        $this->data['SERVERS']['FONT'][]= $attrs["goFontPath"][$i];
+      if(isset( $attrs["gotoSessionType"]['count'])){
+        for($i =0 ; $i < $attrs["gotoSessionType"]['count'] ; $i++){
+          $this->data['SERVERS']['TERMINAL_SESSION_TYPES'][$attrs["cn"][0]][] = $attrs["gotoSessionType"][$i]; 
+        }
       }
     }
 
@@ -539,16 +541,20 @@ class config  {
       $ldap->cd ($this->current['BASE']);
       $ldap->search ("(objectClass=sambaDomain)");
       while ($attrs= $ldap->fetch()){
-        $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]= array(
-            "SID" => $attrs["sambaSID"][0],
-            "RIDBASE" => $attrs["sambaAlgorithmicRidBase"][0]);
+        $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]= array( "SID" =>"","RIDBASE" =>"");
+        if(isset($attrs["sambaSID"][0])){
+          $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]["SID"]  = $attrs["sambaSID"][0];
+        }
+        if(isset($attrs["sambaAlgorithmicRidBase"][0])){
+          $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]["RIDBASE"] = $attrs["sambaAlgorithmicRidBase"][0];
+        }
       }
 
       /* If no samba servers are found, look for configured sid/ridbase */
       if (count($this->data['SERVERS']['SAMBA']) == 0){
         if (!isset($this->current["SID"]) || !isset($this->current["RIDBASE"])){
-          print_red(_("SID and/or RIDBASE missing in your configuration!"));
-          display_error_page();
+          msg_dialog::display(_("Configuration error"), _("SID and/or RIDBASE missing in the configuration!"), FATAL_ERROR_DIALOG);
+          exit();
         } else {
           $this->data['SERVERS']['SAMBA']['DEFAULT']= array(
               "SID" => $this->current["SID"],
@@ -621,7 +627,7 @@ class config  {
       if (isset($config->current['STRICT_UNITS']) && preg_match('/true/i', $config->current['STRICT_UNITS'])){
         if ($ui->gosaUnitTag != "" && isset($this->tdepartments[$val]) &&
             $this->tdepartments[$val] != $ui->gosaUnitTag){
-          continue;
+#          continue;
         }
       }
 
@@ -714,50 +720,45 @@ class config  {
    */
   function getShareList($listboxEntry = false)
   {
-    $ldap= $this->get_ldap_link();
-    $base =  $this->current['BASE'];
-    $res= get_list("(&(objectClass=goShareServer)(goExportEntry=*))","server",$base,array("goExportEntry","cn"),GL_SUBSEARCH);
-    $return = array();
+    $tmp = get_sub_list("(&(objectClass=goShareServer)(goExportEntry=*))","",get_ou("serverou"),
+        $this->current['BASE'],array("goExportEntry","cn"), GL_NONE);
+    $return =array();
+    foreach($tmp as $entry){
 
-    foreach($res as $entry){
-      if(obj_is_readable($entry['dn'], "server/goShareServer","goExportEntry")){
-
-        if(isset($entry['goExportEntry']['count'])){
-          unset($entry['goExportEntry']['count']);
-        }
-        if(isset($entry['goExportEntry'])){
-          foreach($entry['goExportEntry'] as $export){
-            $shareAttrs = split("\|",$export);
-            if($listboxEntry) {
-              $return[$shareAttrs[0]."|".$entry['cn'][0]] = $shareAttrs[0]." - ".$entry['cn'][0];
-            }else{
-              $return[$shareAttrs[0]."|".$entry['cn'][0]]['server']       = $entry['cn'][0];
-              $return[$shareAttrs[0]."|".$entry['cn'][0]]['name']         = $shareAttrs[0];
-              $return[$shareAttrs[0]."|".$entry['cn'][0]]['description']  = $shareAttrs[1];
-              $return[$shareAttrs[0]."|".$entry['cn'][0]]['type']         = $shareAttrs[2];
-              $return[$shareAttrs[0]."|".$entry['cn'][0]]['charset']      = $shareAttrs[3];
-              $return[$shareAttrs[0]."|".$entry['cn'][0]]['path']         = $shareAttrs[4];
-              $return[$shareAttrs[0]."|".$entry['cn'][0]]['option']       = $shareAttrs[5];
-            }
+      if(isset($entry['goExportEntry']['count'])){
+        unset($entry['goExportEntry']['count']);
+      }
+      if(isset($entry['goExportEntry'])){
+        foreach($entry['goExportEntry'] as $export){
+          $shareAttrs = split("\|",$export);
+          if($listboxEntry) {
+            $return[$shareAttrs[0]."|".$entry['cn'][0]] = $shareAttrs[0]." - ".$entry['cn'][0];
+          }else{
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['server']       = $entry['cn'][0];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['name']         = $shareAttrs[0];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['description']  = $shareAttrs[1];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['type']         = $shareAttrs[2];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['charset']      = $shareAttrs[3];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['path']         = $shareAttrs[4];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['option']       = $shareAttrs[5];
           }
         }
-      } 
+      }
     }
-
     return($return);
   }
 
+
   /* This function returns all available ShareServer */
   function getShareServerList()
   {
     global $config;
     $return = array();
-    $ui = get_userinfo();
     $base = $config->current['BASE'];
+    $res= get_sub_list("(&(objectClass=goShareServer)(goExportEntry=*))", "server",
+          get_ou("serverou"), $base,array("goExportEntry","cn"),GL_NONE);
 
-    $res= get_list("(&(objectClass=goShareServer)(goExportEntry=*))", "server", $base,array("goExportEntry","cn"),GL_SUBSEARCH);
     foreach($res as $entry){
-      if(obj_is_readable($entry['dn'], "server/goShareServer","goExportEntry")){
         if(isset($entry['goExportEntry']['count'])){
           unset($entry['goExportEntry']['count']);
         }
@@ -766,11 +767,11 @@ class config  {
           $sharename = $a_share[0];
           $return[$entry['cn'][0]."|".$sharename] = $entry['cn'][0]." [".$sharename."]";
         }
-      }
     }
     return($return);
   }
 
+
   /* Check if there's the specified bool value set in the configuration */
   function boolValueIsTrue($section, $value)
   {