From 762be93cd2b41a8b01bad016c1e166de7b88c8af Mon Sep 17 00:00:00 2001 From: hickert Date: Thu, 24 Apr 2008 10:05:38 +0000 Subject: [PATCH] Updated Krb services git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@10668 594d385d-05f5-0310-b6e9-bd551577e9d8 --- gosa-core/include/class_gosaSupportDaemon.inc | 87 ++++++++++++++++--- 1 file changed, 76 insertions(+), 11 deletions(-) diff --git a/gosa-core/include/class_gosaSupportDaemon.inc b/gosa-core/include/class_gosaSupportDaemon.inc index b10d506dc..90cd20060 100644 --- a/gosa-core/include/class_gosaSupportDaemon.inc +++ b/gosa-core/include/class_gosaSupportDaemon.inc @@ -1406,8 +1406,9 @@ class gosaSupportDaemon /* Possible attributes */ $attrs = array("MASK","POLICY","PW_HISTORY_NUM","PW_MAX_LIFE", - "PW_MIN_CLASSES","PW_MIN_LENGTH","PW_MIN_LIFE","REF_COUNT"); + "PW_MIN_CLASSES","PW_MIN_LENGTH","PW_MIN_LIFE","POLICY_REFCNT"); + $tmp = $this->_send($xml_msg,TRUE); if(isset($tmp['XML'])){ foreach($attrs as $attr){ @@ -1422,13 +1423,14 @@ class gosaSupportDaemon } - /*! \brief Creates/Updates a given policy with a set of configuration settings. + /*! \brief Creates a new policy with a given set of configuration settings. For a list of configurable attributes have a look at 'krb5_get_policy()'. (Uses the GOsa support daemon instead of the ldap database.) @pram String The name of the policy to update. + @pram Array The attributes to update @return Boolean TRUE on success else FALSE. */ - public function krb5_set_policy($name,$values) + public function krb5_add_policy($server,$name,$values) { $ret = FALSE; @@ -1443,29 +1445,92 @@ class gosaSupportDaemon return($ret); } + /* Check if the given server is a valid mac address + */ + if(!tests::is_mac($server)){ + trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address"); + return($ret); + } + + /* Transform array into */ $attrs = ""; - foreach($values as $name => $value){ - if(empty($name) || is_numeric($name)){ - trigger_error("Invalid policy configuration attribute given '".$name."=".$value."'."); + foreach($values as $id => $value){ + if(empty($id) || is_numeric($id)){ + trigger_error("Invalid policy configuration attribute given '".$id."=".$value."'."); return($ret); } - $attrs = "<$name>$value\n"; + $attrs.= "<$id>$value\n"; } /* Prepare request event */ $xml_msg = "". - "
gosa_krb5_set_policy
". + "
gosa_krb5_create_policy
". "".$name."". $attrs. "GOSA". - "GOSA". + "".$server."". "
"; - return($this->_send($xml_msg,TRUE)); + return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error()); + } + + + /*! \brief Updates a given policy with a set of configuration settings. + For a list of configurable attributes have a look at 'krb5_get_policy()'. + (Uses the GOsa support daemon instead of the ldap database.) + @pram String The name of the policy to update. + @return Boolean TRUE on success else FALSE. + */ + public function krb5_set_policy($server,$name,$values) + { + $ret = FALSE; + + /* Check if the given name is a valid request value + */ + if(!is_string($name) || empty($name)){ + trigger_error("The given policy name is not of type string or it is empty."); + return($ret); + } + if(!is_array($values) || !count($values)){ + trigger_error("No valid policy settings given. The parameter must be of type array and must contain at least one entry"); + return($ret); + } + + /* Check if the given server is a valid mac address + */ + if(!tests::is_mac($server)){ + trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address"); + return($ret); + } + + /* Transform array into + */ + $attrs = ""; + foreach($values as $id => $value){ + if(preg_match("/^policy$/i",$id)) continue; + if(empty($id) || is_numeric($id)){ + trigger_error("Invalid policy configuration attribute given '".$id."=".$value."'."); + return($ret); + } + $attrs.= "<$id>$value\n"; + } + + /* Prepare request event + */ + $xml_msg = + "". + "
gosa_krb5_modify_policy
". + "".$name."". + $attrs. + "GOSA". + "".$server."". + "
"; + + return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error()); } @@ -1493,7 +1558,7 @@ class gosaSupportDaemon "GOSA". "GOSA". "
"; - return($this->_send($xml_msg,TRUE)); + return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error()); } } -- 2.30.2