diff --git a/gosa-plugins/systems/admin/systems/class_serverService.inc b/gosa-plugins/systems/admin/systems/class_serverService.inc
index 668bd945f65a2be4a36ad8c2b5138cc320f74d30..4bd58ed1894d29ca7ff73227e0b95b6f0595615e 100644 (file)
}
}
}else{
- trigger_error("Service class missing: ".$plug['CLASS']);
+ #trigger_error("Service class missing: ".$plug['CLASS']);
}
}
$this->divList = new divListSystemService($config,$this);
/* Edit a service and make a backup from all attributes,
to be able to restore old values after aborting dialog */
if($s_action == "EditSingleService"){
- $this->backup = get_object_vars($this->plugins[$s_entry]);
- $this->dialog = $this->plugins[$s_entry];
- $this->current = $s_entry;
+ if($this->plugins[$s_entry]->acl_is_readable("")){
+ $this->backup = get_object_vars($this->plugins[$s_entry]);
+ $this->dialog = $this->plugins[$s_entry];
+ $this->current = $s_entry;
+ }
}
Restore vars with values before editing */
if(isset($_POST['CancelService']) && !empty($this->current)){
if($this->backup == NULL){
- $this->plugins[$this->current] = new $this->current($this->config,$this->dn);
+ $this->plugins[$this->current] = new $this->current($this->config,$this->dn,$this);
$this->plugins[$this->current]-> set_acl_base($this->acl_base);
$this->plugins[$this->current]-> set_acl_category(preg_replace("/\/$/","",$this->acl_category));
/* There is currently a subdialog open, display this dialog */
if(is_object($this->dialog)){
$add ="";
- if(isset($this->dialog->krb_host_key) && $this->dialog->krb_host_key instanceof krb_host_keys){
+ if(isset($this->dialog->krb_host_key) && $this->dialog->krb_host_key instanceof krbHostKeys){
$add = $this->dialog->krb_host_key->save_object_by_prefix($this->dialog->krb_service_prefix);
$add = $this->dialog->krb_host_key->execute_by_prefix($this->dialog->krb_service_prefix,TRUE);
}
$tmp = $this->plugins[$name]->getListEntry();
/* Check if given action is allowed for this service */
- if($tmp[$map[$action]]){
+ if($tmp[$map[$action]] && !empty($this->plugins[$name]->StatusFlag)){
if($this->plugins[$name]->initially_was_account && $this->plugins[$name]->is_account){
$this->plugins[$name]->setStatus($action);
}
}
}
if($this->plugins[$name]->initially_was_account){
- if(isset($this->plugins[$name]->krb_host_key) && $this->plugins[$name]->krb_host_key instanceof krb_host_keys){
- $this->plugins[$name]->krb_host_key->remove_from_parent_by_prefix($this->plugins[$name]->krb_host_key);
+ if(isset($this->plugins[$name]->krb_host_key) && $this->plugins[$name]->krb_host_key instanceof krbHostKeys){
+ $this->plugins[$name]->krb_host_key->remove_from_parent_by_prefix($this->plugins[$name]->krb_service_prefix);
}
$this->plugins[$name]->remove_from_parent();
}