From: hickert Date: Mon, 7 Nov 2005 06:57:13 +0000 (+0000) Subject: Some little changes: X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=71908487a51d3232026b93e9b55350683a8cfbbc;p=gosa.git Some little changes: Please use save_object to store posts in the class object. Save_object is called everytime when the tab is submitted. All the checkbox settings wasn't kept when switching to another tab and back. git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@1843 594d385d-05f5-0310-b6e9-bd551577e9d8 --- diff --git a/plugins/personal/nagios/class_nagiosAccount.inc b/plugins/personal/nagios/class_nagiosAccount.inc index b342c08d9..9465e97e7 100644 --- a/plugins/personal/nagios/class_nagiosAccount.inc +++ b/plugins/personal/nagios/class_nagiosAccount.inc @@ -14,110 +14,116 @@ class nagiosAccount extends plugin { - /* Definitions */ - var $plHeadline= "Nagios"; - var $plDescription= "This does something"; - - /* CLI vars */ - var $cli_summary= "Manage users nagios account"; - var $cli_description= "Manage Account and autorization\nfor Nagios"; - var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser"); + /* Definitions */ + var $plHeadline= "Nagios"; + var $plDescription= "This does something"; + + /* CLI vars */ + var $cli_summary= "Manage users nagios account"; + var $cli_description= "Manage Account and autorization\nfor Nagios"; + var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser"); /* plugin specific values */ - var $NagiosAlias= ""; - var $NagiosPager= ""; - var $NagiosMail= ""; - var $HostNotificationPeriod= ""; - var $ServiceNotitificationPeriod= ""; - var $HostNotificationCommands= ""; - var $ServiceNotificationCommands= ""; - var $HostNotitificationOptions= ""; - var $ServiceNotificationOptions= ""; - - var $AuthorizedAllHosts= ""; - var $AuthorizedAllServices= ""; - var $AuthorizedSystemCommands= ""; - var $AuthorizedAllHostCommands= ""; - var $AuthorizedAllServiceCommands= ""; - var $AuthorizedConfigurationInformation= ""; - var $AuthorizedSystemInformation= ""; + var $NagiosAlias = ""; + var $NagiosPager = ""; + var $NagiosMail = ""; + + var $HostNotificationOptions = ""; + var $HostNotificationPeriod = ""; + var $ServiceNotificationPeriod = ""; + var $ServiceNotitificationPeriod = ""; + var $HostNotificationCommands = ""; + var $ServiceNotificationCommands = ""; + var $HostNotitificationOptions = ""; + var $ServiceNotificationOptions = ""; + + var $AuthorizedAllHosts = "unchecked"; + var $AuthorizedAllServices = "unchecked"; + var $AuthorizedSystemCommands = "unchecked"; + var $AuthorizedAllHostCommands = "unchecked"; + var $AuthorizedAllServiceCommands = "unchecked"; + var $AuthorizedConfigurationInformation = "unchecked"; + var $AuthorizedSystemInformation = "unchecked"; /* attribute list for save action */ - - var $attributes= array("NagiosAlias", "NagiosPager", "NagiosMail", "HostNotificationPeriod", + + var $attributes= array("NagiosAlias", "NagiosPager", "NagiosMail", "HostNotificationPeriod", "ServiceNotificationPeriod", "HostNotificationCommands", "ServiceNotificationCommands", "HostNotificationOptions", "ServiceNotificationOptions", "AuthorizedAllHosts", "AuthorizedAllServices", "AuthorizedSystemCommands", "AuthorizedAllHostCommands", "AuthorizedAllServiceCommands", "AuthorizedConfigurationInformation", "AuthorizedSystemInformation"); + var $is_chk_box = array("AuthorizedAllHosts","AuthorizedAllServices","AuthorizedSystemCommands", + "AuthorizedAllHostCommands","AuthorizedAllServiceCommands", + "AuthorizedConfigurationInformation","AuthorizedSystemInformation"); + var $objectclasses= array("nagiosContact","nagiosAuth"); /* constructor, if 'dn' is set, the node loads the given - 'dn' from LDAP */ + 'dn' from LDAP */ function nagiosAccount ($config, $dn= NULL) { /* Configuration is fine, allways */ $this->config= $config; - - plugin::plugin ($config, $dn); + + plugin::plugin ($config, $dn); /* Save initial account state */ - $this->initially_was_account= $this->is_account; + $this->initially_was_account= $this->is_account; } function execute() { - /* Call parent execute */ - plugin::execute(); + /* Call parent execute */ + plugin::execute(); /* Load templating engine */ $smarty= get_smarty(); $display= ""; - /* Do we need to flip is_account state? */ - if (isset($_POST['modify_state'])){ - $this->is_account= !$this->is_account; - } - - /* Do we represent a valid account? */ - if (!$this->is_account && $this->parent == NULL){ - $display= "\"\"src=\"images/stop.png\" ". - _("This account has no nagios extensions.").""; - - $display.= back_to_main(); - return ($display); - } - - /* Show tab dialog headers */ - if ($this->parent != NULL){ + /* Do we need to flip is_account state? */ + if (isset($_POST['modify_state'])){ + $this->is_account= !$this->is_account; + } + + /* Do we represent a valid account? */ + if (!$this->is_account && $this->parent == NULL){ + $display= "\"\"src=\"images/stop.png\" ". + _("This account has no nagios extensions.").""; + + $display.= back_to_main(); + return ($display); + } + + /* Show tab dialog headers */ + if ($this->parent != NULL){ if ($this->is_account){ $display= $this->show_header(_("Remove nagios account"), _("This account has nagios features enabled. You can disable them by clicking below.")); } else { $display= $this->show_header(_("Create nagios account"), _("This account has nagios features disabled. You can enable them by clicking below.")); return($display); - } - } - - foreach(array("NagiosAlias", "NagiosPager", "NagiosMail", "HostNotificationPeriod", - "ServiceNotificationPeriod", "HostNotificationCommands", "ServiceNotificationCommands", - "HostNotificationOptions", "ServiceNotificationOptions", "AuthorizedAllHosts", "AuthorizedAllServices", - "AuthorizedSystemCommands", "AuthorizedAllHostCommands", "AuthorizedAllServiceCommands", - "AuthorizedConfigurationInformation", "AuthorizedSystemInformation") as $val) { - - $smarty->assign("$val", $this->$val); - $smarty->assign("$val"."ACL", chkacl($this->acl, "$val")); + } } - $smarty->assign('ServiceNotificationOptionsValues',array("d,u,r,v"=>"d,u,r,v" ,"d,u,r"=>"d,u,r" ,"d,u"=>"d,u")); - $smarty->assign('HostNotificationOptionsValues',array("w,u,c,r"=>"w,u,c,r" ,"w,u,c"=>"w,u,c" ,"c,w"=>"c,w")); - - - $smarty->assign('ServiceNotificationPeriodValues',array("24x7"=>"24x7" ,"24x5"=>"24x5" ,"8x5"=>"8x5")); - $smarty->assign('HostNotificationPeriodValues',array("24x7"=>"24x7" ,"24x5"=>"24x5" ,"8x5"=>"8x5")); - - $display.= $smarty->fetch (get_template_path('nagios.tpl', TRUE, dirname(__FILE__))); - return ($display); + /* Assign attributes an ACL to smarty */ + foreach($this->attributes as $val) { + $smarty->assign("$val", $this->$val); + $smarty->assign("$val"."ACL", chkacl($this->acl, "$val")); + if(in_array($val,$this->is_chk_box)){ + if($this->$val == "checked"){ + $smarty->assign($val."CHK", " checked "); + }else{ + $smarty->assign($val."CHK", ""); + } + } + } + $smarty->assign('ServiceNotificationOptionsValues' ,array("d,u,r,v"=>"d,u,r,v" ,"d,u,r"=>"d,u,r" ,"d,u"=>"d,u")); + $smarty->assign('HostNotificationOptionsValues' ,array("w,u,c,r"=>"w,u,c,r" ,"w,u,c"=>"w,u,c" ,"c,w"=>"c,w")); + $smarty->assign('ServiceNotificationPeriodValues' ,array("24x7"=>"24x7" ,"24x5"=>"24x5" ,"8x5"=>"8x5")); + $smarty->assign('HostNotificationPeriodValues' ,array("24x7"=>"24x7" ,"24x5"=>"24x5" ,"8x5"=>"8x5")); + $display.= $smarty->fetch (get_template_path('nagios.tpl', TRUE, dirname(__FILE__))); + return ($display); } /* Save to LDAP */ @@ -126,41 +132,26 @@ class nagiosAccount extends plugin $ldap= $this->config->get_ldap_link(); /* Call parents save to prepare $this->attrs */ - plugin::save(); + plugin::save(); /* Adapt attributes if needed */ //$method= new $this->method($this->config); //$id= $method->uattrib; //$method->fixAttributesOnStore($this); - $check="unchecked"; - if(isset($_POST['AuthorizedSystemInformation'])){$check="checked";}$this->attrs['AuthorizedSystemInformation']=$check; - $check="unchecked"; - if(isset($_POST['AuthorizedConfigurationInformation'])){$check="checked";}$this->attrs['AuthorizedConfigurationInformation']=$check; - $check="unchecked"; - if(isset($_POST['AuthorizedSystemCommands'])){$check="checked";}$this->attrs['AuthorizedSystemCommands']=$check; - $check="unchecked"; - if(isset($_POST['AuthorizedAllServices'])){$check="checked";}$this->attrs['AuthorizedAllServices']=$check; - $check="unchecked"; - if(isset($_POST['AuthorizedAllHosts'])){$check="checked";}$this->attrs['AuthorizedAllHosts']=$check; - $check="unchecked"; - if(isset($_POST['AuthorizedAllServiceCommands'])){$check="checked";}$this->attrs['AuthorizedAllServiceCommands']=$check; - $check="unchecked"; - if(isset($_POST['AuthorizedAllHostCommands'])){$check="checked";}$this->attrs['AuthorizedAllHostCommands']=$check; - /* Write back to ldap */ - $ldap->cd($this->dn); - $ldap->modify($this->attrs); - show_ldap_error($ldap->get_error()); - - /* Optionally execute a command after we're done */ - if ($this->initially_was_account == $this->is_account){ - if ($this->is_modified){ - $this->handle_post_events("modify"); - } - } else { - $this->handle_post_events("add"); + /* Write back to ldap */ + $ldap->cd($this->dn); + $ldap->modify($this->attrs); + show_ldap_error($ldap->get_error()); + + /* Optionally execute a command after we're done */ + if ($this->initially_was_account == $this->is_account){ + if ($this->is_modified){ + $this->handle_post_events("modify"); + } + } else { + $this->handle_post_events("add"); } - } function check() @@ -183,24 +174,34 @@ class nagiosAccount extends plugin $message[]= _("Please enter a valid email address in 'NagiosMail' field."); } } - return($message); + return($message); } - + + + /* Use Save_object for every Post handling */ function save_object() { - if (isset($_POST['nagiosTab'])){ /* Save ldap attributes */ plugin::save_object(); + + /* Specialhandling for checkboxes */ + foreach($this->is_chk_box as $val){ + if(isset($_POST[$val])){ + $this->$val = "checked"; + }else{ + $this->$val = "unchecked"; + } + } } } function remove_from_parent() { - /* Cancel if there's nothing to do here */ - if (!$this->initially_was_account){ - return; - } + /* Cancel if there's nothing to do here */ + if (!$this->initially_was_account){ + return; + } /* include global link_info */ $ldap= $this->config->get_ldap_link(); @@ -209,19 +210,18 @@ class nagiosAccount extends plugin plugin::remove_from_parent(); /* Adapt attributes if needed */ -// $method= new $this->method($this->config); -// $method->fixAttributesOnRemove($this); - + // $method= new $this->method($this->config); + // $method->fixAttributesOnRemove($this); @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, - $this->attributes, "Save"); + $this->attributes, "Save"); $ldap->cd($this->dn); $ldap->modify($this->attrs); show_ldap_error($ldap->get_error()); - + /* remove the entry from LDAP */ unset ($this->attrs['uid']); - + /* Optionally execute a command after we're done */ $this->handle_post_events('remove'); } diff --git a/plugins/personal/nagios/nagios.tpl b/plugins/personal/nagios/nagios.tpl index 24355eb8a..b5cc3e99f 100644 --- a/plugins/personal/nagios/nagios.tpl +++ b/plugins/personal/nagios/nagios.tpl @@ -65,19 +65,25 @@

{t}Nagios authentification{/t}

- + - + - + - + - + - + - +
{t}can view system informations{/t}
{t}can view system informations{/t}
authorized_for_configuration_information
authorized_for_configuration_information
authorized_for_system_commands
authorized_for_system_commands
authorized_for_all_services
authorized_for_all_services
authorized_for_all_hosts
authorized_for_all_hosts
authorized_for_all_service_commands
authorized_for_all_service_commands
authorized_for_all_host_commands
authorized_for_all_host_commands