Code

Updated strings in dhcp error msgs
[gosa.git] / plugins / admin / systems / class_servNfs.inc
index 9e339ca318222004415ba31087a6535a91d02281..9f6a3e93d211a23bd1d48f815c3ec16ea6a064fc 100644 (file)
@@ -2,14 +2,9 @@
 
 class servnfs extends plugin
 {
-  /* CLI vars */
-  var $cli_summary      = "Manage server objects";
-  var $cli_description  = "Some longer text\nfor help";
-  var $cli_parameters   = array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
-
   /* attribute list for save action */
   var $ignore_account   = TRUE;
-  var $attributes       = array("description","type","charset","path","option");
+  var $attributes       = array("description","type","charset","path","option", "volume");
   var $objectclasses    = array("whatever");
   var $is_account       = true;
 
@@ -21,6 +16,7 @@ class servnfs extends plugin
   var $types         =array();  // Array Types NFS/Samba/NCP/netatalk
   var $charsets      =array();  // Array with charsets
   var $path          ="";  // Path
+  var $volume        ="";  // Volume
   var $option        ="";  // Options
   var $is_edit           =false;
   var $allow_mounts = false; //do we allow mount entries?
@@ -31,7 +27,7 @@ class servnfs extends plugin
   {
     plugin::plugin ($config, $dn);
     
-    $this->types   = array("NFS"=>"NFS","samba"=>"samba","netatalk"=>"netatalk","NCP"=>"NCP");
+    $this->types   = array("CIFS" => "CIFS", "NFS"=>"NFS","samba"=>"samba","netatalk"=>"netatalk","NCP"=>"NCP");
     if($dn){
       $this->host = substr($dn, 3, strpos($dn, ',')-3);
     }
@@ -41,13 +37,13 @@ class servnfs extends plugin
        
     $this->charsets = array();
 
-    if(!file_exists("/etc/gosa/encodings")){
-      print_red(_("The file '/etc/gosa/encodings' does not exist, can't get supported charsets."));
+    if(!file_exists(CONFIG_DIR."/encodings")){
+      print_red(sprintf(_("The file '%s/encodings' does not exist, can't get supported charsets."),CONFIG_DIR));
     }else{
-      if(!is_readable("/etc/gosa/encodings")){
-        print_red(_("Can't read '/etc/gosa/encodings', please check permissions."));
+      if(!is_readable(CONFIG_DIR."/encodings")){
+        print_red(sprintf(_("Can't read '%s/encodings', please check permissions."),CONFIG_DIR));
       }else{
-        $fp = fopen("/etc/gosa/encodings","r");
+        $fp = fopen(CONFIG_DIR."/encodings","r");
         $i = 100;
         while(!feof($fp)&&$i){
           $i -- ;
@@ -67,18 +63,14 @@ class servnfs extends plugin
     }
 
     if($entry){
-      $tmp = split("\|",$entry);
-      $this->name          = $tmp[0];  // Name of NFS
-      $this->description   = $tmp[1];  // description
-      $this->type          = $tmp[2];  // Type NFS/Samba/NCP/netatalk
-      $this->charset       = $tmp[3];  // charset
-      $this->path          = $tmp[4];  // Path
-      $this->option        = $tmp[5];  // Options
+      list($this->name, $this->description, $this->type, $this->charset,
+           $this->path, $this->option, $this->volume)= split("\|",$entry."|");
       $this->is_edit          = true;
-      
+
     }else{
       $this->attributes[] = "name";
     }
+
     
     $this->create_mount_init = $mount;
   }
@@ -136,7 +128,7 @@ class servnfs extends plugin
             }
           }
         $ldap = $this->config->get_ldap_link();
-      $ldap->cat($mountdn);
+        $ldap->cat($mountdn, array('dn'));
         $attrs = $ldap->fetch();
         if (count($attrs) > 0) {
             $smarty->assign("mount_checked", "checked");
@@ -183,25 +175,29 @@ class servnfs extends plugin
       $message[]=_("Please specify a valid path for your setup.");
     }
 
-    // only 0-9a-z
+    // Skip if there are diallowed characters 
     if(!$this->is_edit){
-      if(preg_match("/[^a-z0-9\.\-_]/i",$this->name)){
-        $message[]=_("Please specify a valid name for your setup.");
+      if(!preg_match("/^[a-z0-9\.\-_]+$/i",$this->name)){
+        $message[]=_("Please specify a valid name for your share.");
       }
       if(empty($this->name)){
-        $message[]=_("Please specify a name for your setup.");
+        $message[]=_("Please specify a name for your share.");
       }
     }
 
-    if(preg_match("/\|/",$this->description)){
+    if(preg_match("/[^a-z0-9\._+ -]+/i",$this->description)){
       $message[]=_("Description contains invalid characters.");
     }
+
+    if(preg_match("/[^a-z0-9\._+ -]/i",$this->volume)){
+      $message[]=_("Volume contains invalid characters.");
+    }
   
     if(preg_match("/\|/",$this->path)){
       $message[]=_("Path contains invalid characters.");
     }
 
-    if(preg_match("/\|/",$this->option)){
+    if(preg_match("/[^a-z0-9\._,=+ -]/i",$this->option)){
       $message[]=_("Option contains invalid characters.");
     }
 
@@ -245,7 +241,8 @@ class servnfs extends plugin
     $s_return.= $this->type."|";     
     $s_return.= $this->charset."|";     
     $s_return.= $this->path."|";     
-    $s_return.= $this->option;     
+    $s_return.= $this->option."|";     
+    $s_return.= $this->volume;     
 
     return(array($this->name=>$s_return));
   }