diff --git a/trunk/gosa-plugins/fai/admin/fai/class_askClassName.inc b/trunk/gosa-plugins/fai/admin/fai/class_askClassName.inc
index de302bd2ad75a5fe0dfd775d99560c2a6ee72483..7cac6536d9e0fb4ee7fe594fac025cea642661ae 100644 (file)
$message[] = msgPool::invalid(_("Name"),preg_replace("/ /","_",$this->ClassName),"/[^_]/");
}
+ if(preg_match("/^-/", $this->ClassName)) {
+ $message[] = sprintf(_("The specified classname '%s' is invalid. Classnames must not start with a dash."), $this->ClassName);
+
+ }
+
if($this->ClassName == ""){
$message[]= msgPool::required(_("Name"));
}
}
else {
/* Check if the given ClassName is already used in another administrative unit */
+ switch($this->objectClass) {
+ case "FAIpartitionTable": $rdn = get_ou('faiPartitionRDN'); break;
+ case "FAIpackageList" : $rdn = get_ou('faiPackageRDN'); break;
+ case "FAIscript" : $rdn = get_ou('faiScriptRDN'); break;
+ case "FAIvariable" : $rdn = get_ou('faiVariableRDN'); break;
+ case "FAIhook" : $rdn = get_ou('faiHookRDN'); break;
+ case "FAIprofile" : $rdn = get_ou('faiProfileRDN'); break;
+ case "FAItemplate" : $rdn = get_ou('faiTemplateRDN'); break;
+ }
$ldap= $this->config->get_ldap_link();
- $filter = "(cn=".$this->ClassName.")";
- $ldap->cd($this->parent->fai_release);
+ $filter = "(&(cn=".$this->ClassName.")(!(FAIstate=|removed)))";
+ $base = $rdn . $this->parent->fai_release;
+ $ldap->cd($base);
$ldap->search($filter, array("dn","gosaUnitTag"));
if ($ldap->count() > 0) {