Code

Added some more setup steps
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 12 Feb 2007 09:16:39 +0000 (09:16 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 12 Feb 2007 09:16:39 +0000 (09:16 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@5717 594d385d-05f5-0310-b6e9-bd551577e9d8

12 files changed:
html/setup.php
html/themes/default/style.css
setup/class_setup.inc
setup/class_setupStep.inc
setup/class_setupStep4.inc
setup/class_setupStep5.inc
setup/class_setupStep6.inc [new file with mode: 0644]
setup/class_setupStep7.inc [new file with mode: 0644]
setup/setup_step4.tpl
setup/setup_step5.tpl [new file with mode: 0644]
setup/setup_step6.tpl [new file with mode: 0644]
setup/setup_step7.tpl [new file with mode: 0644]

index 37494eba1340ea5f168d802b73c7d22ef112bb47..1f3796712c58d912a3aa9f2be8c2fb69b775a972 100644 (file)
@@ -32,6 +32,8 @@ require_once("../setup/class_setupStep2.inc");
 require_once("../setup/class_setupStep3.inc");
 require_once("../setup/class_setupStep4.inc");
 require_once("../setup/class_setupStep5.inc");
+require_once("../setup/class_setupStep6.inc");
+require_once("../setup/class_setupStep7.inc");
 
 
 /* Set header */
index 9b2952e108764ac173d91fb9434e8d987be7f777..daafeaf68ab98c09412e6605ff658745a84835f7 100644 (file)
@@ -1033,7 +1033,7 @@ li.step4_name, div.step4_name {
     vertical-align: middle;
        float:left;
        overflow: hidden;
-       width:160px;
+       width:200px;
        height:2.0em;
 }
 
@@ -1051,13 +1051,17 @@ li.step4_status, div.step4_status {
        overflow: hidden;
        height:2.0em;
        text-decoration: none;
-       background-color: #BBBBBB;
+       background-color: #DDDDDD;
 }
 
 
 ul.step4_container, div.step4_container {
-       border: solid 1px #CCC;
+       background-color: #E7E7E7;
+       border: solid 2px #D7D7D7;
        width:680px;
        height:2.0em;
+       margin-top:2px;
+       margin-left:2px;
+       margin-right:2px;
        float:left;
 }
index 83812649cc24fad9c19b4a134efc1b73475bf6a0..8bd1e7bf1ec9c9bb3838229091e51a5793ba04e2 100644 (file)
@@ -23,7 +23,7 @@ require_once("class_setupStep.inc");
 class setup extends plugin
 {
 
-  var $i_steps  = 5;  // Number of setup steps 
+  var $i_steps  = 7;  // Number of setup steps 
   var $i_current= 1;  // Current step
   var $i_last   = 1;  // Last setup step;
   var $o_steps  = array(); 
@@ -34,7 +34,13 @@ class setup extends plugin
   {
     for($i = 1 ; $i <= $this->i_steps; $i ++ ){
       $class= "setup_step_".$i;
-      $this->o_steps[$i] = new $class();
+    
+      if(class_exists($class)){
+        $this->o_steps[$i] = new $class();
+      }else{
+        $this->o_steps[$i] = new setup_step();
+        trigger_error("Try to create class '".$class."' but it is not available, possibly you have forgotten to add the include in setup.php");
+      }
     }
   }
 
index a873094e3de1efe73f3ff56d7ecb5d953efb4c30..f69abdfa5242f5b85c9fbd313c14b0b5553c5572 100644 (file)
@@ -20,7 +20,7 @@
 */
 
 
-class setup_step extends plugin
+class setup_step 
 {
   var $s_title      = "Still undefined";
   var $s_title_long = "This is a still undefined long title";
@@ -31,6 +31,10 @@ class setup_step extends plugin
 
   var $attributes   = array();
 
+  function setup_step()
+  {
+   }
+
   function save_object()
   {
     /* Do not call plugin::save_object. This causes acl trouble  */
index c1470837a4f47df1943acfd151bcce215bd0f946..45603e5288f31a22ac0668c33fe6353f3566efd6 100644 (file)
@@ -27,35 +27,21 @@ class setup_step_4 extends setup_step
   var $admin      = "";
   var $password   = "";
   var $base       = "";
-  var $peopleou   = "ou=people,";
-  var $peopledn   = "cn";
-  var $groupou    = "ou=groups,";
-  var $uidbase    = 1000;
-  var $encryption = "crypt";
-  var $mail       = "kolab";
-  var $errors     = TRUE;
-
-  var $crypt_methods  = array();
-  var $mail_methods   = array();
 
   var $connect_id = FALSE;
   var $bind_id    = FALSE;
 
   var $resolve_filter = "*";
   var $resolve_user   = FALSE;
+  var $tls            = FALSE;
 
-  var $attributes = array("connection","location","admin","password","base","peopleou","peopledn","groupou",
-                          "uidbase","encryption","mail","errors");
+  var $attributes = array("connection","location","admin","password","base","tls");
 
   function setup_step_4()
   {
     $this->s_title      = _("Ldap settings");
     $this->s_title_long = _("Ldap connection setup");
     $this->s_info       = _("This dialog allows the basic configuration of GOsa's behaviour and properties in your main configuration.");
-    $tmp = @passwordMethod::get_available_methods_if_not_loaded();
-    $this->crypt_methods   = $tmp['name'];
-    $tmp = $this->get_available_mail_classes();
-    $this->mail_methods = $tmp['name'];
   }
   
   function execute()
@@ -65,18 +51,15 @@ class setup_step_4 extends setup_step
       $smarty->assign($attr,$this->$attr);
     }
 
-    $smarty->assign("peopledns",array("uid","cn"));
-    $smarty->assign("crypt_methods",$this->crypt_methods);
-    $smarty->assign("mail_methods",$this->mail_methods);
+    /* Assign connection status */
+    $smarty->assign("connection_status",$this->get_connection_status());
 
-     
+    /* Handle namingContext detection */
     $attr = @LDAP::get_naming_contexts($this->connection);
     unset($attr['count']);
     $smarty->assign("namingContexts",$attr);
     $smarty->assign("namingContextsCount",count($attr));
-
-    /* Assign connection status */
-    $smarty->assign("connection_status",$this->get_connection_status());
+    $smarty->assign("bool",array(FALSE => _("No"), TRUE => _("Yes")));
 
     /* Addign resolved users */
     $smarty->assign("resolve_user",$this->resolve_user);
@@ -89,30 +72,6 @@ class setup_step_4 extends setup_step
     return($smarty -> fetch (get_template_path("../setup/setup_step4.tpl")));
   }
 
-  /* Returns the classnames auf the mail classes */
-  function get_available_mail_classes()
-  {
-    $dir = opendir( "../include");
-    $methods = array();
-    $suffix = "class_mail-methods-";
-    $lensuf = strlen($suffix);
-    $prefix = ".inc";
-    $lenpre = strlen($prefix);
-    $i = 0;
-    while (($file = readdir($dir)) !== false){
-
-      if(stristr($file,$suffix)) {
-        $lenfile = strlen($file);
-        $methods['name'][$i] = substr($file,$lensuf,($lenfile-$lensuf)-$lenpre);
-        $methods['file'][$i] = $file;
-        $methods[$i]['file'] = $file;
-        $methods[$i]['name'] = substr($file,$lensuf,($lenfile-$lensuf)-$lenpre);
-        $i++;
-      }
-    }
-    return($methods); 
-  }
-
   function get_connection_status()
   {
     $this->connect_id = FALSE;
@@ -180,6 +139,12 @@ class setup_step_4 extends setup_step
         $this->resolve_user = false;
       }
     }
+
+    if($this->bind_id){
+      $this->is_completed =TRUE;
+    }else{
+      $this->is_completed =FALSE;
+    }
   }
 }
 
index b801d421dea127f4cac6b93ab5ea2ac9ee5697eb..b31c9d33bab09af27217652e79bd65bcc030fd0c 100644 (file)
 class setup_step_5 extends setup_step
 {
 
+  var $peopleou   = "ou=people";
+  var $groupou    =  "ou=groups";
+  var $peopledn   = "cn";
+  var $uidbase    = 1000;
+  var $encryption = "crypt";
+  var $mail       = "none";
+  var $theme      = "default"; 
+  var $errorlvl   = TRUE;
+  var $cyrusunixstyle = FALSE;
+
+  var $pwd_rules  = array("pwminlen" => 6, 
+                          "pwminlen_active" => FALSE,
+                          "pwdiffer" => 5,
+                          "pwdiffer_active" => FALSE,
+                          "externalpwdhook" => "/usr/bin/sudo myscript",
+                          "externalpwdhook_active" => FALSE);
+
+  var $mail_settings = array("vacationdir"        => "/etc/gosa/vacation",
+                             "vacationdir_active" => FALSE);
+  var $crypt_methods  = array();
+  var $mail_methods   = array();
+
+
+  var $attributes = array("peopleou","groupou","peopledn","uidbase","encryption","mail","theme","errorlvl","cyrusunixstyle");
+
   function setup_step_5()
   {
+    $this->s_title      = _("GOsa settings 1/2");
+    $this->s_title_long = _("GOsa generic settings, page 1/2");
+    $this->s_info       = _("This dialog allows you to setup GOsa behaviour");
 
+    $tmp = @passwordMethod::get_available_methods_if_not_loaded();
+    foreach($tmp['name'] as $name){
+      $this->crypt_methods[$name] = $name;
+    }
+    $tmp = $this->get_available_mail_classes();
+    foreach($tmp['name'] as $name){
+      $this->mail_methods[$name] = $name;
+    }
   }
+
   
   function execute()
   {
-    return("plug1");
+    $smarty = get_smarty();
+    $smarty->assign("peopledns",array("uid","cn"));
+    $smarty->assign("crypt_methods",$this->crypt_methods);
+    $smarty->assign("mail_methods",$this->mail_methods);
+    $smarty->assign("themes",$this->get_themes());
+    $smarty->assign("pwd_rules",$this->pwd_rules);
+    $smarty->assign("mail_settings",$this->mail_settings);
+    $smarty->assign("bool",array(FALSE => _("No"), TRUE => _("Yes")));
+    $smarty->assign("warnings" ,$this->check());
+    $smarty->assign("warnings_cnt" ,count($this->check()));
+    foreach($this->attributes as $attr){
+      $smarty->assign($attr,$this->$attr);
+    }
+    return($smarty -> fetch (get_template_path("../setup/setup_step5.tpl")));
+  }
+
+
+  /* Returns the classnames auf the mail classes */
+  function get_available_mail_classes()
+  {
+    $dir = opendir( "../include");
+    $methods = array();
+    $suffix = "class_mail-methods-";
+    $lensuf = strlen($suffix);
+    $prefix = ".inc";
+    $lenpre = strlen($prefix);
+    $i = 0;
+    while (($file = readdir($dir)) !== false){
+
+      if(stristr($file,$suffix)) {
+        $lenfile = strlen($file);
+        $methods['name'][$i] = substr($file,$lensuf,($lenfile-$lensuf)-$lenpre);
+        $methods['file'][$i] = $file;
+        $methods[$i]['file'] = $file;
+        $methods[$i]['name'] = substr($file,$lensuf,($lenfile-$lensuf)-$lenpre);
+        $i++;
+      }
+    }
+    return($methods); 
+  }
+
+  function get_themes()
+  {
+    $dir = opendir( "../ihtml/themes/");
+    $themes = array();
+    while (($file = readdir($dir)) !== false){
+      if(is_dir("../ihtml/themes/".$file) && !preg_match("/^\./",$file)){
+        $themes[$file] = $file;
+      }      
+    }
+    return($themes);
+  }
+
+  function check()
+  {
+    $message = array();
+    if(!is_numeric($this->uidbase)){
+      $message[] = _("Uid base must be numeric");
+    }
+
+    if(($this->pwd_rules['pwminlen_active']) && !is_numeric($this->pwd_rules['pwminlen'])){
+      $message[] = _("The given password minimum length is not numeric.");
+    }
+    if(($this->pwd_rules['pwdiffer_active']) && !is_numeric($this->pwd_rules['pwdiffer'])){
+      $message[] = _("The given password differ value is not numeric.");
+    }
+    return($message);
+
   }
 
-}
+  function save_object()
+  {
+    if(isset($_POST['step5_posted'])){
+
+      /* Get attributes */
+      foreach($this->attributes as $attr){
+        if(isset($_POST[$attr])){
+          $this->$attr = validate($_POST[$attr]);
+        }
+      }
+
+      /* Get password settings */ 
+      if(isset($_POST['pwdiffer_active'])){
+        $this->pwd_rules['pwdiffer_active'] = TRUE;
+        if(isset($_POST['pwdiffer'])){
+          $this->pwd_rules['pwdiffer'] = $_POST['pwdiffer'];
+        }
+      }else{
+        $this->pwd_rules['pwdiffer_active'] = FALSE;
+      }
+      if(isset($_POST['pwminlen_active'])){
+        $this->pwd_rules['pwminlen_active'] = TRUE;
+        if(isset($_POST['pwminlen'])){
+          $this->pwd_rules['pwminlen'] = $_POST['pwminlen'];
+        }
+      }else{
+        $this->pwd_rules['pwminlen_active'] = FALSE;
+      }
+
+      /* Mail settings */
+      if(isset($_POST['vacationdir_active'])){
+        $this->mail_settings['vacationdir_active'] = TRUE;
+        if(isset($_POST['vacationdir'])){
+          $this->mail_settings['vacationdir'] = $_POST['vacationdir'];
+        }
+      }else{
+        $this->mail_settings['vacationdir_active'] = FALSE;
+      }
+    }
+
+    $tmp = $this->check(); 
+    if(count($tmp) == 0){
+      $this->is_completed = TRUE;
+    }else{
+      $this->is_completed = FALSE;
+    }
+  }// if tempalte posted 
+}// CLass
 
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>
diff --git a/setup/class_setupStep6.inc b/setup/class_setupStep6.inc
new file mode 100644 (file)
index 0000000..bd8db9f
--- /dev/null
@@ -0,0 +1,130 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class setup_step_6 extends setup_step
+{
+  var $strict         = TRUE;
+  var $governmentmode = FALSE;
+  var $sambaidmapping = FALSE;
+  var $minid          = 100;       
+  var $account_expiration  =FALSE;
+
+  var $generic_settings  = array( "idgen"         => "{%sn}-{%givenName[2-4]}",
+                                  "idgen_active"  => FALSE,
+                                  "minid"         => "100",
+                                  "minid_active"  => FALSE,
+                                  "wws_ou"        => "ou=winstations",
+                                  "wws_ou_active" => FALSE,
+                                  "snapshot_active"=> FALSE,
+                                  "snapshot_base" => "ou=snapshots,dc=server,dc=de",
+                                  "snapshot_user" => "cn=ldapadmin,dc=server,dc=de",
+                                  "snapshot_password" => "",
+                                  "snapshot_server"   => "ldap://localhost:386");
+
+  var $samba_settings    = array( "samba_sid"        => "0-815-4711",
+                                  "samba_sid_active" => FALSE,
+                                  "samba_rid"        => 1000,
+                                  "samba_rid_active" => FALSE); 
+  var $attributes = array("strict","governmentmode","sambaidmapping","minid","account_expiration");
+
+  function setup_step_6()
+  {
+    $this->s_title      = _("GOsa settings 2/2");
+    $this->s_title_long = _("GOsa generic settings, page 2/2");
+    $this->s_info       = _("This dialog allows you to setup GOsa behaviour");
+  }
+
+  
+  function execute()
+  {
+    $smarty = get_smarty();
+    $smarty->assign("generic_settings",$this->generic_settings);
+    $smarty->assign("samba_settings",$this->samba_settings);
+    $smarty->assign("bool",array(FALSE => _("No"), TRUE => _("Yes")));
+        foreach($this->attributes as $attr){
+      $smarty->assign($attr,$this->$attr);
+    }
+    return($smarty -> fetch (get_template_path("../setup/setup_step6.tpl")));
+  }
+
+  function save_object()
+  {
+    if(isset($_POST['step6_posted'])){
+
+      /* Get attributes */
+      foreach($this->attributes as $attr){
+        if(isset($_POST[$attr])){
+          $this->$attr = validate($_POST[$attr]);
+        }
+      }
+
+      /* Generic settings */
+      if(isset($_POST['idgen_active'])){
+        $this->generic_settings['idgen_active'] = TRUE;
+        if(isset($_POST['idgen'])){
+          $this->generic_settings['idgen'] = $_POST['idgen'];
+        }
+      }else{
+        $this->generic_settings['idgen_active'] = FALSE;
+      }
+      if(isset($_POST['snapshot_active'])){
+        $this->generic_settings['snapshot_active'] = TRUE;
+        if(isset($_POST['snapshot_base'])){
+          $this->generic_settings['snapshot_base'] = $_POST['snapshot_base'];
+        }
+        if(isset($_POST['snapshot_user'])){
+          $this->generic_settings['snapshot_user'] = $_POST['snapshot_user'];
+        }
+        if(isset($_POST['snapshot_password'])){
+          $this->generic_settings['snapshot_password'] = $_POST['snapshot_password'];
+        }
+        if(isset($_POST['snapshot_server'])){
+          $this->generic_settings['snapshot_server'] = $_POST['snapshot_server'];
+        }
+      }else{
+        $this->generic_settings['snapshot_active'] = FALSE;
+      }
+
+      /* Samba settings */
+      if(isset($_POST['samba_sid_active'])){
+        $this->samba_settings['samba_sid_active'] = TRUE;
+        if(isset($_POST['samba_sid'])){
+          $this->samba_settings['samba_sid'] = $_POST['samba_sid'];
+        }
+      }else{
+        $this->samba_settings['samba_sid_active'] = FALSE;
+      }
+      if(isset($_POST['samba_rid_active'])){
+        $this->samba_settings['samba_rid_active'] = TRUE;
+        if(isset($_POST['samba_rid'])){
+          $this->samba_settings['samba_rid'] = $_POST['samba_rid'];
+        }
+      }else{
+        $this->samba_settings['samba_rid_active'] = FALSE;
+      }
+
+    }
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/setup/class_setupStep7.inc b/setup/class_setupStep7.inc
new file mode 100644 (file)
index 0000000..e5dd8e5
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class setup_step_7 extends setup_step
+{
+  var $attributes = array();
+
+  function setup_step_7()
+  {
+    $this->s_title      = _("GOsa settings 1/2");
+    $this->s_title_long = _("GOsa generic settings, page 1/2");
+    $this->s_info       = _("This dialog allows you to setup GOsa behaviour");
+  }
+
+  
+  function execute()
+  {
+    $smarty = get_smarty();
+    return($smarty -> fetch (get_template_path("../setup/setup_step7.tpl")));
+  }
+
+  function save_object()
+  {
+    if(isset($_POST['step7_posted'])){
+
+      /* Get attributes */
+      foreach($this->attributes as $attr){
+        if(isset($_POST[$attr])){
+          $this->$attr = validate($_POST[$attr]);
+        }
+      }
+    }
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
index 28258dfa814f58a64143d9b781588205daaa04bf..2722d8274aefab556f031f1baf7f9fbef0c7c6b0 100644 (file)
@@ -1,4 +1,13 @@
 <h2>{t}ldap connection{/t}</h2>
+
+<div style='width:600px;'>
+{t}Please enter the server URI to allow the GOsa setup to connect your LDAP server (Example: ldap://your.server:389).{/t}
+<br>
+{t}Use the 'Test' button to try a connect. The status will be shown on the bottom of the page.{/t}
+<br>
+
+</div>
+<div style=';float:left;'>
        <div class='step4_container'>
                <div class='step4_name'>
                        {t}Location description{/t}
@@ -55,7 +64,7 @@
        </div>
 
        {if $resolve_user}
-       <div style='float:left; width:680px;padding-bottom:10px;border: solid 1px #CCC;'>
+       <div style='float:left; width:680px;margin-bottom:20px;border: solid 1px #CCC;'>
         <div class='step4_name' style='background-color:#DDD'>
                        <input type='text' value='{$resolve_filter}' name='resolve_filter'>
         </div>
                        <input type='submit' value='{t}Try connect{/t}' style='width:90%;'>
                </div>
        </div>
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Use tls connection{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="tls" size="1" title="">
+                       {html_options options=$bool selected=$tls}
+            </select>
+        </div>
+        <div class='step4_status'>
+            {t}Infos in FAQ{/t}&nbsp;
+            <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+</div>
        <div style='float:left; width:680px;padding-bottom:10px;'>
                {t}Status{/t}: {$connection_status}
        </div>
-       <br>
-
-{if 1== 0}
-
-               
-       <div class='step4_container'>
-               <div class='step4_name'> 
-                       {t}People storage ou{/t}
-               </div>
-               <div class='step4_value'>
-                       <input type='text' name='peopleou' maxlength='40' size='20' value='{$peopleou}'>
-               </div>
-               <div class='step4_status'>
-                       asd
-               </div>
-       </div>
-               
-       <div class='step4_container'>
-               <div class='step4_name'>
-                       {t}People dn attribute{/t}
-               </div>
-               <div class='step4_value'>
-                       <select size="1" name="peopledn">
-                               {html_options values=$peopledns output=$peopledns selected=$peopledn}
-                       </select>
-               </div>
-               <div class='step4_status'>
-                       asd
-               </div>
-       </div>
-               
-       <div class='step4_container'>
-               <div class='step4_name'>
-                       {t}Group storage ou{/t}
-               </div>
-               <div class='step4_value'>
-                       <input type='text' name='groupou' maxlength='40' size='20' value='{$groupou}'>
-               </div>
-               <div class='step4_status'>
-                       asd
-               </div>
-       </div>
-
-       <div class='step4_container'>
-               <div class='step4_name'>
-                       {t}ID base for users/groups{/t}
-               </div>
-               <div class='step4_value'>
-                       <input type='text' name='uidbase' maxlength='20' size='10' value='{$uidbase}'>
-               </div>
-               <div class='step4_status'>
-                       asd
-               </div>
-       </div>
-
-       <div class='step4_container'>
-               <div class='step4_name'>
-                       {t}Encryption algorithm{/t}
-               </div>
-               <div class='step4_value'>
-                       <select name="encryption" size="1" title="">
-                               {html_options options=$crypt_methods selected=$encryption}
-                       </select>
-               </div>
-               <div class='step4_status'>
-                       asd
-               </div>
-       </div>
-
-       <div class='step4_container'>
-               <div class='step4_name'>
-                       {t}Mail method{/t}
-               </div>
-               <div class='step4_value'>
-                       <select name="mail" size="1" title="">
-                               <option name="mail" value="disabled">{t}disabled{/t}</option>
-                               {html_options options=$mail_methods selected=$mail}
-                       </select>
-               </div>
-               <div class='step4_status'>
-                       asd
-               </div>
-       </div>
-
-       <div class='step4_container'>
-               <div class='step4_name'>
-                       {t}Display PHP errors{/t}
-               </div>
-               <div class='step4_value'>
-                       <select name="errorlvl" size="1" title="">
-                               <option value="true">{t}true{/t}</option>
-                               <option value="false">{t}false{/t}</option>
-                       </select>
-               </div>
-               <div class='step4_status'>
-                       asd
-               </div>
-       </div>
-{/if}
-<!--
-                {t}GOsa supports several encryption types for your passwords. Normally this is adjustable via user templates, but you can specify a default method to be used here, too.{/t}
-                {t}GOsa always acts as admin and manages access rights internally. This is a workaround till OpenLDAP's in directory ACI's are fully implemented. For this to work, we need the admin DN and the corresponding password.{/t}
-                {t}Some basic LDAP parameters are tunable and affect the locations where GOsa saves people and groups, including the way accounts get created. Check the values below if the fit your needs.{/t}
-                {t}GOsa has modular support for several mail methods. These methods provide interfaces to users mailboxes and general handling for quotas. You can choose the dummy plugin to leave all your mail settings untouched.{/t}-->
diff --git a/setup/setup_step5.tpl b/setup/setup_step5.tpl
new file mode 100644 (file)
index 0000000..ff98145
--- /dev/null
@@ -0,0 +1,220 @@
+
+{if $warnings_cnt}
+<b><font style='color:red' >Errors:</font></b>
+{foreach from=$warnings item=val key=key}
+       <br>
+       <font style='color:red' >{$val}</font>
+{/foreach}
+{/if}
+
+    <div style='float:left; width:600px;'>
+               <br>
+               <b>{t}GOsa settings{/t}</b>
+       </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}GOsa theme{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="theme">
+                {html_options options=$themes selected=$theme}
+            </select>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}People dn attribute{/t}
+        </div>
+        <div class='step4_value'>
+            <select size="1" name="peopledn">
+                {html_options values=$peopledns output=$peopledns selected=$peopledn}
+            </select>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+
+       <div class='step4_container'>
+        <div class='step4_name'>
+            {t}People storage ou{/t}
+        </div>
+        <div class='step4_value'>
+            <input type='text' name='peopleou' maxlength='40' size='20' value='{$peopleou}'>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+
+
+       <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Group storage ou{/t}
+        </div>
+        <div class='step4_value'>
+            <input type='text' name='groupou' maxlength='40' size='20' value='{$groupou}'>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}ID base for users/groups{/t}
+        </div>
+        <div class='step4_value'>
+            <input type='text' name='uidbase' maxlength='20' size='10' value='{$uidbase}'>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Display PHP errors{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="errorlvl" size="1" title="">
+                       {html_options options=$bool selected=$errorlvl}
+            </select>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+    <div style='float:left; width:600px;'>
+               <br>
+               <b>{t}Password settings{/t}</b>
+       </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Password encryption algorithm{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="encryption" size="1" title="">
+                {html_options options=$crypt_methods selected=$encryption}
+            </select>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+
+    <div class='step4_container' style='height:4em;'>
+        <div class='step4_name' style='height:4em;'>
+            {t}Password restrictions{/t}
+        </div>
+        <div class='step4_value' style='height:4em;'>
+
+                       {if $pwd_rules.pwminlen_active == FALSE}
+                               <input type='checkbox' value='1' name='pwminlen_active'
+                                       onClick='changeState("pwminlen");'>
+                                       {t}Password minimum length{/t}
+                               <input id='pwminlen' name='pwminlen' type='text' value='{$pwd_rules.pwminlen}' size=3 disabled>
+                       {else}
+                               <input type='checkbox' value='1' name='pwminlen_active' checked>
+                               {t}Password minimum length{/t}
+                               <input id='pwminlen' name='pwminlen' type='text' value='{$pwd_rules.pwminlen}' size=3 >
+                       {/if}
+                       <br>
+                       {if $pwd_rules.pwdiffer_active == FALSE}
+                               <input type='checkbox' value='1' name='pwdiffer_active' 
+                                       onClick='changeState("pwdiffer");'>
+                               {t}Different characters from old password{/t}
+                               <input id='pwdiffer' name='pwdiffer' type='text' value='{$pwd_rules.pwdiffer}' size=3 disabled>
+                       {else}
+                               <input type='checkbox' value='1' name='pwminlen_active' checked>
+                               {t}Different characters from old password{/t}
+                               <input id='pwdiffer' name='pwdiffer' type='text' value='{$pwd_rules.pwdiffer}' size=3 >
+                       {/if}
+       
+        </div>
+        <div class='step4_status'  style='height:4em;'>
+                       {t}Infos in FAQ{/t}&nbsp;
+                       <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+
+          <div class='step4_container'>
+        <div class='step4_name'>
+                {t}External script{/t}
+        </div>
+        <div class='step4_value'>
+            {if $pwd_rules.externalpwdhook_active == FALSE}
+                <input type='checkbox' value='1' name='externalpwdhook_active'
+                    onClick='changeState("externalpwdhook");'>
+                <input style='width:90%' id='externalpwdhook' name='externalpwdhook' type='text' value='{$pwd_rules.externalpwdhook}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='externalpwdhook_active' checked>
+                <input style='width:90%' id='externalpwdhook' name='externalpwdhook' type='text' value='{$pwd_rules.externalpwdhook}'  >
+            {/if}
+        </div>
+        <div class='step4_status'>
+                       {t}Infos in FAQ{/t}&nbsp;
+                       <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+
+    <div style='float:left; width:600px;'>
+               <br>
+               <b>{t}Mail settings{/t}</b>
+       </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Mail method{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="mail" size="1" title="">
+                <option name="mail" value="disabled">{t}disabled{/t}</option>
+                {html_options options=$mail_methods selected=$mail}
+            </select>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Vacation templates{/t}
+        </div>
+        <div class='step4_value'>
+            {if $mail_settings.vacationdir_active == FALSE}
+                <input type='checkbox' value='1' name='vacationdir_active'
+                    onClick='changeState("vacationdir");'>
+                <input style='width:90%' id='vacationdir' name='vacationdir' type='text' value='{$mail_settings.vacationdir}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='vacationdir_active' checked>
+                <input style='width:90%' id='vacationdir' name='vacationdir' type='text' value='{$mail_settings.vacationdir}'  >
+            {/if}
+        </div>
+        <div class='step4_status'>
+                       {t}Infos in FAQ{/t}&nbsp;
+                       <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Use cyrus account style{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="cyrusunixstyle" size="1" title="">
+                       {html_options options=$bool selected=$cyrusunixstyle}
+            </select>
+        </div>
+        <div class='step4_status'>
+                       {t}Infos in FAQ{/t}&nbsp;
+                       <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+
+<input type='hidden' value='1' name='step5_posted'>
+<!--
+         {t}GOsa supports several encryption types for your passwords. Normally this is adjustable via user templates, but you can specify a default method to be used here, too.{/t}
+         {t}GOsa always acts as admin and manages access rights internally. This is a workaround till OpenLDAP's in directory ACI's are    fully implemented. For this to work, we need the admin DN and the corresponding password.{/t}
+         {t}Some basic LDAP parameters are tunable and affect the locations where GOsa saves people and groups, including the way accounts get created. Check the values below if the fit your needs.{/t}
+         {t}GOsa has modular support for several mail methods. These methods provide interfaces to users mailboxes and general handling    for quotas. You can choose the dummy plugin to leave all your mail settings untouched.{/t}-->
+
diff --git a/setup/setup_step6.tpl b/setup/setup_step6.tpl
new file mode 100644 (file)
index 0000000..92928ec
--- /dev/null
@@ -0,0 +1,230 @@
+
+    <div style='float:left; width:600px;'>
+               <br>
+               <b>{t}Samba settings{/t}</b>
+       </div>
+
+       
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Samba SID{/t}
+        </div>
+        <div class='step4_value'>
+            {if $samba_settings.samba_sid_active == FALSE}
+                <input type='checkbox' value='1' name='samba_sid_active'
+                    onClick='changeState("samba_sid");'>
+                <input style='width:90%' id='samba_sid' name='samba_sid' type='text' value='{$samba_settings.samba_sid}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='samba_sid_active' checked>
+                <input style='width:90%' id='samba_sid' name='samba_sid' type='text' value='{$samba_settings.samba_sid}'  >
+            {/if}
+        </div>
+        <div class='step4_status'>
+            {t}Infos in FAQ{/t}&nbsp;
+            <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}RID base{/t}
+        </div>
+        <div class='step4_value'>
+            {if $samba_settings.samba_rid_active == FALSE}
+                <input type='checkbox' value='1' name='samba_rid_active'
+                    onClick='changeState("samba_rid");'>
+                <input style='width:90%' id='samba_rid' name='samba_rid' type='text' value='{$samba_settings.samba_rid}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='samba_rid_active' checked>
+                <input style='width:90%' id='samba_rid' name='samba_rid' type='text' value='{$samba_settings.samba_rid}'  >
+            {/if}
+        </div>
+        <div class='step4_status'>
+            {t}Infos in FAQ{/t}&nbsp;
+            <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Samba SID mapping{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="sambaidmapping" size="1" title="">
+                       {html_options options=$bool selected=$sambaidmapping}
+            </select>
+        </div>
+        <div class='step4_status'>
+                       {t}Infos in FAQ{/t}&nbsp;
+                       <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+    <div style='float:left; width:600px;'>
+               <br>
+               <b>{t}Additional GOsa setttings{/t}</b>
+       </div>
+       
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Windows workstation ou{/t}
+        </div>
+        <div class='step4_value'>
+            {if $generic_settings.minid_active == FALSE}
+                <input type='checkbox' value='1' name='wws_ou_active'
+                    onClick='changeState("wws_ou");'>
+                <input style='width:90%' id='wws_ou' name='wws_ou' type='text' value='{$generic_settings.wws_ou}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='wws_ou_active' checked>
+                <input style='width:90%' id='wws_ou' name='wws_ou' type='text' value='{$generic_settings.wws_ou}'  >
+            {/if}
+        </div>
+        <div class='step4_status'>
+                       {t}Infos in FAQ{/t}&nbsp;
+                       <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}GID / UID min id{/t}
+        </div>
+        <div class='step4_value'>
+            {if $generic_settings.minid_active == FALSE}
+                <input type='checkbox' value='1' name='minid_active'
+                    onClick='changeState("minid");'>
+                <input style='width:90%' id='minid' name='minid' type='text' value='{$generic_settings.minid}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='minid_active' checked>
+                <input style='width:90%' id='minid' name='minid' type='text' value='{$generic_settings.minid}'  >
+            {/if}
+        </div>
+        <div class='step4_status'>
+                       {t}Infos in FAQ{/t}&nbsp;
+                       <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Strict units{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="strict" size="1" title="">
+                       {html_options options=$bool selected=$strict}
+            </select>
+        </div>
+        <div class='step4_status'>
+                       {t}Infos in FAQ{/t}&nbsp;
+                       <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Government mode{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="governmentmode" size="1" title="">
+                       {html_options options=$bool selected=$governmentmode}
+                       </select>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+
+       
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Automatic uids{/t}
+        </div>
+        <div class='step4_value'>
+            {if $generic_settings.idgen_active == FALSE}
+                <input type='checkbox' value='1' name='idgen_active'
+                    onClick='changeState("idgen");'>
+                <input style='width:90%' id='idgen' name='idgen' type='text' value='{$generic_settings.idgen}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='idgen_active' checked>
+                <input style='width:90%' id='idgen' name='idgen' type='text' value='{$generic_settings.idgen}'  >
+            {/if}
+        </div>
+        <div class='step4_status'>
+            {t}Infos in FAQ{/t}&nbsp;
+            <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Use account expiration{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="account_expiration" size="1" title="">
+                       {html_options options=$bool selected=$account_expiration}
+            </select>
+        </div>
+        <div class='step4_status'>
+                       {t}Infos in FAQ{/t}&nbsp;
+                       <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+       <div class='step4_container' style='height:10em;'>
+       <div class='step4_name'  style='height:10em;'>
+            {t}Enable snapshot functionality{/t}
+        </div>
+        <div class='step4_value'  style='height:10em;'>
+            {if $generic_settings.snapshot_active == FALSE}
+                <input type='checkbox' value='1' name='snapshot_active'
+                    onClick='changeState("snapshot_base");
+                                                               changeState("snapshot_server");                                                 
+                                                               changeState("snapshot_user");                                                   
+                                                               changeState("snapshot_password");'>{t}Enable{/t}<br>
+                <div style='float:left;width:120px;'>
+                                       {t}Base{/t}&nbsp;
+                               </div>
+                               <input style='width:60%' id='snapshot_base' name='snapshot_base' 
+                                       type='text' value='{$generic_settings.snapshot_base}' disabled><br>
+                <div style='float:left;width:120px;'>
+                   {t}Server{/t}&nbsp;
+                               </div>
+                               <input style='width:60%' id='snapshot_server' name='snapshot_server' 
+                                       type='text' value='{$generic_settings.snapshot_server}' disabled><br>
+                <div style='float:left;width:120px;'>
+                       {t}User{/t}&nbsp;
+                               </div>
+                               <input style='width:60%' id='snapshot_user' name='snapshot_user' 
+                                       type='text' value='{$generic_settings.snapshot_user}' disabled><br>
+                <div style='float:left;width:120px;'>
+                       {t}Password{/t}&nbsp;
+                               </div>
+                               <input style='width:60%' id='snapshot_password' name='snapshot_password' 
+                                       type='password' value='{$generic_settings.snapshot_password}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='snapshot_active' checked>{t}Enable{/t}<br>
+                <div style='float:left;width:120px;'>
+                   {t}Base{/t}&nbsp;
+                               </div>
+                               <input style='width:60%' id='snapshot_base' name='snapshot_base' 
+                                       type='text' value='{$generic_settings.snapshot_base}'><br>
+                <div style='float:left;width:120px;'>
+                       {t}Server{/t}&nbsp;
+                               </div>
+                               <input style='width:60%' id='snapshot_server' name='snapshot_server' 
+                                       type='text' value='{$generic_settings.snapshot_server}'><br>
+                <div style='float:left;width:120px;'>
+                   {t}User{/t}&nbsp;
+                               </div>
+                               <input style='width:60%' id='snapshot_user' name='snapshot_user' 
+                                       type='text' value='{$generic_settings.snapshot_user}'><br>
+                <div style='float:left;width:120px;'>
+                       {t}Password{/t}&nbsp;
+                               </div>
+                               <input style='width:60%' id='snapshot_password' name='snapshot_password' 
+                                       type='password' value='{$generic_settings.snapshot_password}'>
+            {/if}
+        </div>
+        <div class='step4_status'  style='height:10em;'>
+            {t}Infos in FAQ{/t}&nbsp;
+            <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+
+
+<input type='hidden' value='1' name='step6_posted'>
diff --git a/setup/setup_step7.tpl b/setup/setup_step7.tpl
new file mode 100644 (file)
index 0000000..7b9d2d7
--- /dev/null
@@ -0,0 +1,23 @@
+
+    <div style='float:left; width:600px;'>
+               <br>
+               <b>{t}GOsa settings{/t}</b>
+       </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}GOsa theme{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="theme">
+                {html_options options=$themes selected=$theme}
+            </select>
+        </div>
+
+        <div class='step4_status'>
+            {t}Infos in FAQ{/t}&nbsp;
+            <img class='center' src='images/info_small.png' title='{t}Please read the FAQ for more informations{/t}'>
+        </div>
+    </div>
+
+<input type='hidden' value='1' name='step7_posted'>