X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Ffai%2Fclass_faiScriptEntry.inc;h=f7152fce741510c84ee46cebb3506fe0c266b8e2;hb=d196eb25e6a71b8173e42c7d078e53b938b05778;hp=e2148014f10384477609556c510980887142ac0d;hpb=7a507f102e522d1b09c9f244af2ce7f2fb764579;p=gosa.git diff --git a/plugins/admin/fai/class_faiScriptEntry.inc b/plugins/admin/fai/class_faiScriptEntry.inc index e2148014f..f7152fce7 100644 --- a/plugins/admin/fai/class_faiScriptEntry.inc +++ b/plugins/admin/fai/class_faiScriptEntry.inc @@ -3,36 +3,37 @@ class faiScriptEntry 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("cn","description","FAIpriority","FAIscript"); - var $objectclasses= array("FAIscriptEntry"); + var $objectclasses= array(); - var $orig_cn = ""; - var $dn = ""; - var $cn = ""; - var $FAIpriority = ""; - var $FAIscript = ""; - var $description = ""; - var $status = "new"; - var $parent = false; - var $is_parent_saved = false; + var $orig_cn = ""; + + var $dn = ""; + var $cn = ""; + var $FAIpriority = "0"; + var $FAIscript = ""; + var $description = ""; + var $status = "new"; - function faiScriptEntry ($config, $dn) + function faiScriptEntry ($config, $dn= NULL,$object=false) { - /* Dn is dn currently assigned to this object - 'new' if object wasn't saved yet - */ plugin::plugin ($config, $dn); if($dn != "new"){ - $this->orig_cn = $this->cn; + $this->orig_cn= $object['cn']; + $this->dn=$object['dn']; + foreach($object as $name=>$value){ + $oname = $name; + $this->$oname=$value; + } }else{ - $this->status = "new"; - $this->orig_cn = false; + $this->status = "new"; + $this->orig_cn = false; } } @@ -53,6 +54,7 @@ class faiScriptEntry extends plugin $this->FAIscript = $str; } } + foreach($this->attributes as $attrs){ if(get_magic_quotes_gpc()){ @@ -70,18 +72,6 @@ class faiScriptEntry extends plugin return($display); } - /* Delete me, and all my subtrees - */ - function remove_from_parent() - { - $ldap = $this->config->get_ldap_link(); - $ldap->cd ($this->dn); - $ldap->rmdir_recursive($this->dn); - show_ldap_error($ldap->get_error()); - $this->handle_post_events("remove"); - } - - /* Save data to object */ function save_object() { @@ -93,6 +83,7 @@ class faiScriptEntry extends plugin $this->$attrs = ""; } } + $this->FAIscript= recode("DOS..LATIN1", $this->FAIscript); } } @@ -105,54 +96,28 @@ class faiScriptEntry extends plugin $message[] = _("Please enter a name."); } - if(preg_match("/[^0-9a-z]/i",$this->cn)){ - $message[] = _("Please enter a valid name. Only a-Z 0-9 are allowed."); + if(empty($this->FAIscript)){ + $message[]=_("Please enter a script."); } - + return ($message); } function save() { - plugin::save(); - - /* Get ldap connection */ - $ldap = $this->config->get_ldap_link(); - $ldap->cd ($this->config->current['BASE']); - - /* First : Check if parent was already saved ... */ - $ldap->cd($this->parent->dn); - $ldap->cat($this->parent->dn); - - /* no entry was found. So save our base object first */ - if($ldap->count()==0){ - $this->parent->save(); - } - - /* Generate this->dn */ - /* if !orig_dn -> This is a new object */ - if($this->orig_cn == false){ - $this->dn = "cn=".$this->cn.",".$this->parent->dn; - $mode = "add"; - }else{ - /* This is an already existing entry, check if cn was changed */ - if($this->orig_cn != $this->cn ){ - /* rename */ - $ldap->cd($this->dn); - $ldap->rmdir($this->dn); - $this->dn = "cn=".$this->cn.",".$this->parent->dn; - $mode = "add"; - }else{ - /* modify */ - $mode = "modify"; - } + $tmp=array(); + foreach($this->attributes as $attrs){ + $tmp[$attrs] = $this->$attrs; } - $ldap->cd($this->config->current['BASE']); - $ldap->create_missing_trees($this->parent->dn); - $ldap->cd ($this->dn); - $ldap->$mode($this->attrs); - show_ldap_error($ldap->get_error()); + if(($this->orig_cn)&&($tmp['cn']!=$this->orig_cn)){ + $tmp['remove']['from'] = $this->orig_cn; + $tmp['remove']['to'] = $tmp['cn']; + } + + $tmp['dn'] = $this->dn; + $tmp['status'] = $this->status; + return($tmp); } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: