diff --git a/plugins/admin/departments/class_departmentGeneric.inc b/plugins/admin/departments/class_departmentGeneric.inc
index b31594617dce3532a83f0624b9ba0bfd5e5bc22f..b1fd4b313884f6bf7a3843ae0fb6c71786af6107 100644 (file)
$this->config= $config;
/* Set base */
- if ($this->dn == "new"){
+ if ($this->dn == "new"){
$ui= get_userinfo();
- $this->base= dn2base($ui->dn);
+ if(isset($_SESSION['depfilter']['depselect'])){
+ $this->base = $_SESSION['depfilter']['depselect'];
+ }else{
+ $this->base= dn2base($ui->dn);
+ }
} else {
$this->base= preg_replace ("/^[^,]+,/", "", $this->dn);
}
$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)));
}
$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)){