Code

Cache results from get_module_departments.
[gosa.git] / setup / class_setupStep_Config1.inc
index c2a0449b5d21f660c01df305ef1e6da5d2f39181..1087b6a2b18af2da7ebc52cb32659aba184de84c 100644 (file)
@@ -27,46 +27,45 @@ class Step_Config1 extends setup_step
   var $groupou    =  "ou=groups";
   var $peopledn   = "cn";
   var $uidbase    = 1000;
-  var $header_image = "images/ldapserver.png";
+  var $krbsasl    = FALSE;
+  var $strict     = TRUE;
+  var $compressed = TRUE;
 
-  var $base_hook         = "/usr/bin/sudo myscript"; 
+  var $header_image = "images/ldapserver.png";
+  var $account_expiration  =FALSE;
+  var $base_hook         = ""; 
   var $base_hook_active  = FALSE; 
 
   var $encryption = "crypt";
-  var $mail       = "none";
   var $theme      = "default"; 
-  var $errorlvl   = FALSE;
-  var $cyrusunixstyle = FALSE;
+
+  var $include_personal_title = FALSE;
 
   var $pwd_rules  = array("pwminlen" => 6, 
                           "pwminlen_active" => FALSE,
                           "pwdiffer" => 5,
                           "pwdiffer_active" => FALSE,
-                          "externalpwdhook" => "/path/to/your/script username oldpassword newpassword",
+                          "externalpwdhook" => "",
                           "externalpwdhook_active" => FALSE);
 
-  var $mail_settings = array("vacationdir"        => "/etc/gosa/vacation",
-                             "vacationdir_active" => FALSE);
-  var $crypt_methods  = array();
-  var $mail_methods   = array();
+  var $id_settings = array(       "idgen"         => "{%sn}-{%givenName[2-4]}",
+                                  "idgen_active"  => FALSE,
+                                  "minid"         => "100",
+                                  "minid_active"  => FALSE);
 
+  var $crypt_methods  = array();
 
-  var $attributes = array("peopleou","groupou","peopledn","uidbase","encryption","mail","theme","errorlvl","cyrusunixstyle",
-                          "base_hook","base_hook_active");
+  var $attributes = array("compressed","peopleou","groupou","peopledn","uidbase","encryption","theme","krbsasl",
+                          "base_hook","base_hook_active","account_expiration","strict","include_personal_title");
 
   function Step_Config1()
   {
     $this->update_strings();
 
-    $tmp = @passwordMethod::get_available_methods_if_not_loaded();
+    $tmp = @passwordMethod::get_available_methods();
     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;
-    }
   }
 
 
@@ -82,43 +81,23 @@ class Step_Config1 extends setup_step
   {
     $smarty = get_smarty();
     $smarty->assign("peopledns",array("uid","cn"));
+    $smarty->assign("id_settings",$this->id_settings);
     $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")));
     foreach($this->attributes as $attr){
       $smarty->assign($attr,$this->$attr);
     }
+
+    /* !!! Attention strict is inverse. If you change this, 
+     *  don't forget to change save_object too 
+     */
+    $smarty->assign("strict",!$this->strict);
     return($smarty -> fetch (get_template_path("../setup/setup_config1.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/");
@@ -135,6 +114,10 @@ class Step_Config1 extends setup_step
   {
     $message = array();
 
+    if(isset($this->id_settings['minid_active']) && !is_numeric($this->id_settings['minid'])){
+      $message[] = sprintf(_("The specified value for '%s' must be a numeric value"),_("GID / UID min id"));
+    }
+
     if(preg_match("/,$/",$this->peopleou)){
       $message[] =sprintf(_("Don't add a trailing comma to '%s'."),_("People storage ou"));
     }
@@ -163,15 +146,45 @@ class Step_Config1 extends setup_step
       /* Get attributes */
       foreach($this->attributes as $attr){
         if(isset($_POST[$attr])){
-          $this->$attr = validate($_POST[$attr]);
+          $this->$attr = validate(get_post($attr));
+        }
+      }
+
+      /* !!! Attention strict is inverse. If you change this, 
+       *  don't forget to change the smarty assignment too 
+       */
+      if(isset($_POST['strict'])){
+        if($_POST['strict']){
+          $this->strict = FALSE;
+        }else{
+          $this->strict = TRUE;
+        }
+      }
+
+      if(isset($_POST['minid_active'])){
+        $this->id_settings['minid_active'] = TRUE;
+        if(isset($_POST['minid'])){
+          $this->id_settings['minid'] = get_post('minid');
+        }
+      }else{
+        $this->id_settings['minid_active'] = FALSE;
+      }
+
+      /* Generic settings */
+      if(isset($_POST['idgen_active'])){
+        $this->id_settings['idgen_active'] = TRUE;
+        if(isset($_POST['idgen'])){
+          $this->id_settings['idgen'] = get_post('idgen');
         }
+      }else{
+        $this->id_settings['idgen_active'] = FALSE;
       }
 
       /* Get password settings */ 
       if(isset($_POST['pwdiffer_active'])){
         $this->pwd_rules['pwdiffer_active'] = TRUE;
         if(isset($_POST['pwdiffer'])){
-          $this->pwd_rules['pwdiffer'] = $_POST['pwdiffer'];
+          $this->pwd_rules['pwdiffer'] = get_post('pwdiffer');
         }
       }else{
         $this->pwd_rules['pwdiffer_active'] = FALSE;
@@ -181,37 +194,27 @@ class Step_Config1 extends setup_step
       if(isset($_POST['pwminlen_active'])){
         $this->pwd_rules['pwminlen_active'] = TRUE;
         if(isset($_POST['pwminlen'])){
-          $this->pwd_rules['pwminlen'] = $_POST['pwminlen'];
+          $this->pwd_rules['pwminlen'] = get_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;
-      }
-
-      /* Mail settings */
+      /* External pwd settings */
       if(isset($_POST['externalpwdhook_active'])){
         $this->pwd_rules['externalpwdhook_active'] = TRUE;
         if(isset($_POST['externalpwdhook'])){
-          $this->pwd_rules['externalpwdhook'] = $_POST['externalpwdhook'];
+          $this->pwd_rules['externalpwdhook'] = get_post('externalpwdhook');
         }
       }else{
         $this->pwd_rules['externalpwdhook_active'] = FALSE;
       }
 
-      /* Mail settings */
+      /* base hook settings */
       if(isset($_POST['base_hook_active'])){
         $this->pwd_rules['base_hook_active'] = TRUE;
         if(isset($_POST['base_hook'])){
-          $this->pwd_rules['base_hook'] = $_POST['base_hook'];
+          $this->pwd_rules['base_hook'] = get_post('base_hook');
         }
       }else{
         $this->pwd_rules['base_hook_active'] = FALSE;
@@ -231,7 +234,7 @@ class Step_Config1 extends setup_step
   function get_attributes()
   {
     $tmp = setup_step::get_attributes();
-    foreach(array("pwd_rules","mail_settings") as $attr){
+    foreach(array("pwd_rules","id_settings") as $attr){
       $tmp[$attr]= $this->$attr;
     }
     return($tmp);