Code

One repository setup step removed
[gosa.git] / plugins / admin / departments / class_departmentGeneric.inc
index 243d1e921c3c7ee8845a759f27388bead2f8ce86..b1fd4b313884f6bf7a3843ae0fb6c71786af6107 100644 (file)
@@ -51,7 +51,7 @@ class department extends plugin
        $this->config= $config;
 
        /* Set base */
-        if ($this->dn == "new"){
+    if ($this->dn == "new"){
                $ui= get_userinfo();
                if(isset($_SESSION['depfilter']['depselect'])){
                        $this->base = $_SESSION['depfilter']['depselect'];
@@ -70,15 +70,22 @@ class department extends plugin
        $this->config->make_idepartments();
        $smarty= get_smarty();
 
-
-       /* Show main page */
-       $smarty->assign("bases", $this->config->idepartments);
+       /* Hide all departments, that are subtrees of this department */
+       $bases  = $this->config->idepartments;
+       $tmp    = array();      
+       foreach($bases as $dn=>$base){
+               $fixed = str_replace("/","\\",$this->dn);
+               /* Only attach departments which are not a subtree of this one */
+               if(!preg_match("/".$fixed."/",$dn)){
+                       $tmp[$dn]=$base;
+               }
+       }
+       $smarty->assign("bases", $tmp);
 
        foreach ($this->attributes as $val){
                $smarty->assign("$val", $this->$val);
                $smarty->assign("$val"."ACL", chkacl($this->acl, "$val"));
        }
-       $smarty->assign("bases", $this->config->idepartments);
        $smarty->assign("base_select", $this->base);
        return($smarty->fetch (get_template_path('generic.tpl', TRUE)));
   }
@@ -155,7 +162,7 @@ class department extends plugin
                $message[]= _("The field 'Name' contains the reserved word 'incoming'.".
                                " Please choose another name.");
        }
-       if (preg_match ('/[,#+:=>\\\\]/', $this->ou)){
+       if (preg_match ('/[,#+:=>\\\\\/]/', $this->ou)){
                $message[]= _("The field 'Name' contains invalid characters.");
        }
        if (!is_phone_nr($this->telephoneNumber)){