X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_gosaSupportDaemon.inc;h=6c1fd89606671a616dc39c4530530dd6dc79b116;hb=cd5f4de8cfe3b506e563f61dca7f9dae0cccd19f;hp=797d56f4804d5685e41dd35389950dcd74dce637;hpb=f0c0d394a0cd7cb4d8023195acaf1a5d88ac8a84;p=gosa.git diff --git a/gosa-core/include/class_gosaSupportDaemon.inc b/gosa-core/include/class_gosaSupportDaemon.inc index 797d56f48..6c1fd8960 100644 --- a/gosa-core/include/class_gosaSupportDaemon.inc +++ b/gosa-core/include/class_gosaSupportDaemon.inc @@ -827,6 +827,13 @@ class gosaSupportDaemon } if ($xml_elem['type'] == 'complete') { + $start_level = 1; + $test2 = &$params; + while($start_level < $xml_elem['level']) { + $test2 = &$test2[$level[$start_level]]; + $start_level++; + } + /* Save tag attributes too. e.g. */ @@ -836,12 +843,6 @@ class gosaSupportDaemon } } - $start_level = 1; - $test2 = &$params; - while($start_level < $xml_elem['level']) { - $test2 = &$test2[$level[$start_level]]; - $start_level++; - } if(!isset($test2[$xml_elem['tag']])){ if(isset($xml_elem['value'])){ $test2[$xml_elem['tag']] = $xml_elem['value']; @@ -1839,7 +1840,7 @@ class gosaSupportDaemon @param ... @return Array All queued entries. */ - public function DAK_get_queue_entries($server) + public function DAK_keyring_entries($server) { /* Ensure that we send the event to a valid mac address */ @@ -1872,6 +1873,79 @@ class gosaSupportDaemon return(array()); } } + + + /*! \brief Imports the given key into the specified keyring (Servers mac address) + @param String The servers mac address + @param String The gpg key. + @return Boolean TRUE on success else FALSE + */ + public function DAK_import_key($server,$key) + { + /* Ensure that we send the event to a valid mac address + */ + if(!is_string($server) || !tests::is_mac($server)){ + trigger_error("No valid mac address given '".$server."'."); + return; + } + + /* Check if there is some cleanup required before importing the key. + There may be some Header lines like: + -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.6 (GNU/Linux) + */ + if(preg_match("/".normalizePreg("BEGIN PGP PUBLIC KEY BLOCK")."/",$key)){ + + /* Remove header */ + $key = preg_replace("/^.*\n\n/sim","",$key); + /* Remove footer */ + $key = preg_replace("/-----.*$/sim","",$key); + }elseif (!preg_match('%^[a-zA-Z0-9/+]*={0,2}$%', $key)) { + + /* Encode key if it is raw. + */ + $key = base64_encode($key); + } + + /* Create query + */ + $xml_msg = " +
gosa_import_dak_key
+ ".$server." + ".$key." + GOSA +
"; + + $res = $this->_send($xml_msg,TRUE); + return($this->is_error()); + } + + + /*! \brief Removes a key from the keyring on the given server. + @param String The servers mac address + @param String The gpg key uid. + @return Boolean TRUE on success else FALSE + */ + public function DAK_remove_key($server,$key) + { + /* Ensure that we send the event to a valid mac address + */ + if(!is_string($server) || !tests::is_mac($server)){ + trigger_error("No valid mac address given '".$server."'."); + return; + } + + /* Create query + */ + $xml_msg = " +
gosa_remove_dak_key
+ ".$server." + ".$key." + GOSA +
"; + + $res = $this->_send($xml_msg,TRUE); + return($this->is_error()); + } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: