Code

Updated
[gosa.git] / plugins / admin / fai / class_askClassName.inc
index a2b380e16594071213bce628309e3d13536e339b..13b923a8b0cbd45c1014b117e408b4058d9de4a3 100644 (file)
@@ -3,17 +3,17 @@
 class askClassName extends plugin
 {
   /* CLI vars */
-  var $cli_summary= "Manage server basic objects";
-  var $cli_description= "Some longer text\nfor help";
-  var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
+  var $cli_summary          = "Manage server basic 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();
-  var $objectclasses  = array("whatever");
+  var $ignore_account     = TRUE;
+  var $attributes         = array();
+  var $objectclasses      = array("whatever");
 
-  var $objectClass    = false;
-  var $forbidden      =array();
+  var $objectClass        = false;
+  var $forbidden          = array();
   var $ClassName          = "";  
   var $ClassAlreadyExists = false;
 
@@ -26,20 +26,28 @@ class askClassName extends plugin
 
   function execute()
   {
+       /* Call parent execute */
+       plugin::execute();
+
     /* Fill templating stuff */
     $smarty = get_smarty();
     $display= "";
 
     /* The faifilter contais 
-       The base for all fai objects 
+     * The base for all fai objects 
      */
     $faifilter = $_SESSION['faifilter'];
 
     /* First search for every ou, in given fai base
      * With a second search detect all object that belong to the different ous. 
      */
+
+    $base = "ou=fai,ou=configs,ou=systems,".$faifilter['base'];
+    if($faifilter['branch'] != "main"){
+      $base = $faifilter['branch'];
+    }
     $ldap = $this->config->get_ldap_link();
-    $res  = get_list($this->ui->subtreeACL, "(objectClass=organizationalUnit)",FALSE, $faifilter['base'], array("cn","description","objectClass"),TRUE);
+    $res  = get_list($this->ui->subtreeACL, "(objectClass=organizationalUnit)",FALSE, $base, array("cn","description","objectClass"),TRUE);
     $used = array();
 
     $delete = array();
@@ -48,7 +56,6 @@ class askClassName extends plugin
           FALSE, $objecttypes['dn'], array("cn","description","objectClass","FAIclass"),TRUE);
 
       foreach($res2 as $object){
-      
         /* skip class names with this name */ 
         if(in_array($this->objectClass,$object['objectClass'])){
           $delete[] = $object['cn'][0];
@@ -56,7 +63,9 @@ class askClassName extends plugin
     
         /* Skip profiles */
         if(!in_array("FAIprofile",$object['objectClass'])){
-          $used[$object['cn'][0]]= $object['cn'][0];
+          if(isset($object['cn'])){
+            $used[$object['cn'][0]]= $object['cn'][0];
+          }
         }
       }
     }
@@ -91,8 +100,10 @@ class askClassName extends plugin
      */
     if(count ($used)==0){
       $smarty->assign("ClassNamesAvailable", " disabled ");
+      $smarty->assign("grey", 'style="color:#C0C0C0"');
     }else{
       $smarty->assign("ClassNamesAvailable", "");
+      $smarty->assign("grey", "");
     }
     $smarty->assign("ClassNames", $used);
     $smarty->assign("ClassNameKeys", $used);
@@ -104,18 +115,19 @@ class askClassName extends plugin
    */ 
   function save_object()
   {
-    if(isset($_POST['UseNewClass'])){
+    if(isset($_POST['classSelector']) && $_POST['classSelector'] == 1 
+       && isset($_POST['edit_continue'])){
       $this->ClassName          = $_POST['UseTextInputName'];
       $this->ClassAlreadyExists = true;
     }
   
-    if(isset($_POST['UseSelectedClass'])){
+    if(isset($_POST['classSelector']) && $_POST['classSelector'] == 2 
+       && isset($_POST['edit_continue'])){
       $this->ClassAlreadyExists = false;
       $this->ClassName          = $_POST['SelectedClass'];
     }
   }
 
-
   /* Check given class name 
    */
   function check()
@@ -129,10 +141,6 @@ class askClassName extends plugin
       $message[]=_("The specified class name is already in use for this object type.");
     }
 
-    if(preg_match("/[^a-z0-9]/i",$this->ClassName)){
-      $message[]=_("Please enter a valid class name. Only 0-9 a-z is allowed here.");
-    }
     return ($message);
   }