From 4bc8fafb18cba9d6c7787500bb302722b372178d Mon Sep 17 00:00:00 2001 From: hickert Date: Mon, 26 Jul 2010 15:46:23 +0000 Subject: [PATCH] Updated several service dialogs, fixed typos, string, html, post handling and more. git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@19115 594d385d-05f5-0310-b6e9-bd551577e9d8 --- .../services/apache2/class_apacheUtils.inc | 490 +++++++++--------- 1 file changed, 245 insertions(+), 245 deletions(-) diff --git a/gosa-plugins/apache2/admin/systems/services/apache2/class_apacheUtils.inc b/gosa-plugins/apache2/admin/systems/services/apache2/class_apacheUtils.inc index a827baacc..22a0a5ddf 100644 --- a/gosa-plugins/apache2/admin/systems/services/apache2/class_apacheUtils.inc +++ b/gosa-plugins/apache2/admin/systems/services/apache2/class_apacheUtils.inc @@ -3,251 +3,251 @@ class apacheUtils extends plugin { - /* This function returns the vhost entries specified for given host - */ - public static function getVhostEntries($config,$HostDn,$silent = false) - { - - $ldap = $config->get_ldap_link(); - $ldap->cd($config->current['BASE']); - - /* Get host entry */ - $ldap->cat($HostDn); - $host_attr = $ldap->fetch(); - - /* Create template for all fetched vhosts Data - */ - $VhostBase = array(); - $VhostBase['exists'] = false; - //$VhostBase['RECORDS'] = array(); - $VhostBase['apacheServerName'] = array(); - $VhostBase['apacheConfig'] = array(); - - $Vhosts = array(); - - /* Get & Parse all vhosts entries - */ - $ldap->ls("(&(objectClass=apacheConfig)(apacheServerName=*))",$HostDn,array("*")); - $tmp_res = array(); - while($attrs = $ldap->fetch()) { - $tmp_res[] = $attrs; - } - - /* Parse fetched vhosts - */ - foreach($tmp_res as $attrs){ - - $apacheServerName = $attrs['apacheServerName'][0]; - $apacheDocumentRoot = $attrs['apacheDocumentRoot'][0]; - $apacheServerAdmin = $attrs['apacheServerAdmin'][0]; - $Vhosts[$apacheServerName] = $VhostBase; - $Vhosts[$apacheServerName]['exists'] = true; - - /* Set basic attributes - */ - if(isset($attrs["apacheConfig"][0])){ - $Vhosts[$apacheServerName]["apacheConfig"] = $attrs["apacheConfig"][0]; - } - - /* Set initial vhosts name, to be able to detect if this entry was renamed - */ - $Vhosts[$apacheServerName]['InitialApacheServerName'] = $apacheServerName; - $Vhosts[$apacheServerName]['apacheServerName'] = $apacheServerName; - $Vhosts[$apacheServerName]['apacheDocumentRoot'] = $apacheDocumentRoot; - $Vhosts[$apacheServerName]['apacheServerAdmin'] = $apacheServerAdmin; - - - if (isset($attrs['apacheServerAlias'])){ - for($i = 0 ; $i < $attrs['apacheServerAlias']['count']; $i ++){ - $Vhosts[$apacheServerName]['apacheServerAlias'][] = $attrs['apacheServerAlias'][$i]; - } - } - - if (isset($attrs['apacheScriptAlias'])){ - for($i = 0 ; $i < $attrs['apacheScriptAlias']['count']; $i ++){ - $Vhosts[$apacheServerName]['apacheScriptAlias'][] = $attrs['apacheScriptAlias'][$i]; - } - } - - } - return($Vhosts); - } - - - /* This function compares two apache vhosts objects and returns an - * array with following indexes - * - delete, for vhost entries which must be deleted (only if vhost entries is removed) - * - rename, if a dn must be renamed, for example, the apacheServerName has changed - * - add, if there is a new vhost entries created - */ - public static function getVhostEntriesDiff($config,$newVhosts,$HostDn) - { - $oldVhosts = apacheUtils::getVhostEntries($config,$HostDn,true); - - $move = array(); - $add = array(); - $del = array(); - - /* Generate a template for vhosts with default values - */ - $zoneBase = array(); - $zoneBase['objectClass'] = array("top","apacheConfig"); - $zoneBase['apacheServerName'] = ""; - - /* Contains all renamed apacheServerNames - * For vhosts entry udpdates - */ - $PrePareVhostEntries = array(); - - /* Walk through all vhosts and detect renamed/added/deleted vhosts ... - */ - foreach($newVhosts as $name => $zone){ - - /* This vhosts was renamed - */ - if((!empty($zone['InitialApacheServerName'])) && ($zone['InitialApacheServerName'] != $zone['apacheServerName'])){ - - /* Move old vhosts to new position - */ - $oldDn = "apacheServerName=".$zone['InitialApacheServerName'].",".$HostDn; - $newDn = "apacheServerName=".$zone['apacheServerName'].",".$HostDn; - $PrePareVhostEntries[$zone['InitialApacheServerName']] = $zone['apacheServerName']; - $move [$oldDn] = $newDn; - } - - /* Get old vhosts if available - */ - $oldVhost=array(); - if(isset($oldVhosts[$zone['InitialApacheServerName']])){ - if(!empty($oldVhosts[$zone['InitialApacheServerName']])){ - $oldVhost = $oldVhosts[$zone['InitialApacheServerName']]; - } - } - - /* Create vhosts entry and put it in our add queue - */ - $newDn = "apacheServerName=".$zone['apacheServerName'].",".$HostDn; - $obj = $zoneBase; - $obj['apacheServerName'] = $zone['apacheServerName']; - $obj['apacheDocumentRoot'] = $zone['apacheDocumentRoot']; - $obj['apacheServerAdmin'] = $zone['apacheServerAdmin']; - - if(!empty($zone['apacheServerAlias'])) { - - foreach($zone['apacheServerAlias'] as $rec){ - $obj['apacheServerAlias'][] = $rec; - } - } - - if(!empty($zone['apacheScriptAlias'])) { - foreach($zone['apacheScriptAlias'] as $rec){ - $obj['apacheScriptAlias'][] = $rec; - } - } - - /* Append udpated Vhost Entry to our add queue - */ - $add[$newDn] = $obj; - - /* Remove currently managed vhosts from oldVhosts. - * this gives us the ability to detect removed vhosts - */ - if(isset($oldVhosts[$zone['InitialApacheServerName']])){ - unset($oldVhosts[$zone['InitialApacheServerName']]); - } - } - - /* The rest of our oldVhosts must be deleted - * because they are no longer available in newVhosts anymore. - */ - foreach($oldVhosts as $zone) { - $oldDn = "apacheServerName=".$zone['InitialApacheServerName'].",".$HostDn; - $del[$oldDn] = ""; - } - - /* Check for entries which must be updated - */ - $zoneUpdates = array(); - $udpate = array(); - if(count($PrePareVhostEntries)){ - $ldap = $config->get_ldap_link(); - foreach($PrePareVhostEntries as $FromVhostName => $ToVhostName){ - $ldap->cd($HostDn); - $ldap->search("(&(objectClass=apacheConfig)(apacheServerName=".$FromVhostName."))",array("apacheServerName")); - while($attrs = $ldap->fetch()){ - $zoneUpdates[$attrs['dn']] = array("apacheServerName"=>$ToVhostName); - } - } - } - - $ret = array("del" => $del , "move" => $move , "add" => $add,"vhostUpdates"=>$zoneUpdates); - // user_error(print_r($ret,true)); - return($ret); - } - - /* returns the dn for a specified zone - */ - function getVhostDN($config,$apacheServerNameMix) - { - $ret = ""; - if(!strstr($apacheServerNameMix, '/')) { - print_red(sprintf(_("Undefined vhost name '%s'. Vhost name must look like this 'www.example.com or example.com'."),$apacheServerNameMix)); - return($ret); - } - - $apacheServerNameIndex = explode("/",$apacheServerNameMix); - $apacheServerName = $apacheServerNameIndex[1]; - $nameServer = strtolower($apacheServerNameIndex[0]); - $ldap = $config->get_ldap_link(); - - /* search for the nameserver */ - $ldap-> cd($config->current['BASE']); - $ldap->search("(&(objectClass=goServer)(cn=".$nameServer."))",array("cn")); - if($ldap->count()){ - $attr = $ldap->fetch(); - } else { - return($ret); - } - - $ldap-> cd($attr['dn']); - $ldap->search("(&(objectClass=apacheConfig)(apacheServerName=".$apacheServerName."))",array("apacheServerName")); - if($ldap->count()){ - $attr = $ldap->fetch(); - return($attr['dn']); - } - - return($ret); - } - - - /* returns all available vhosts - * array[reverseName] = apacheServerName; - */ - function getAvailableVhosts($config) - { - $ret = array(); - $ldap = $config->get_ldap_link(); - $ldap->cd ($config->current['BASE']); - - /* Search for vhosts ... - */ - $ldap->search("(&(objectClass=apacheConfig)(apacheServerName=*))",array("apacheServerName")); - - $ForwardVhosts = array(); - $zones = array(); - - while($at = $ldap->fetch()){ - $ForwardVhosts[$at['dn']] = $at; - } - - foreach($ForwardVhosts as $dn => $obj){ - - if(preg_match("/".$dn."/",$Rdn)){ - $zones[$Robj['apacheServerName'][0]] =$obj['apacheServerName'][0]; - } - } - return($zones); - } + /* This function returns the vhost entries specified for given host + */ + public static function getVhostEntries($config,$HostDn,$silent = false) + { + + $ldap = $config->get_ldap_link(); + $ldap->cd($config->current['BASE']); + + /* Get host entry */ + $ldap->cat($HostDn); + $host_attr = $ldap->fetch(); + + /* Create template for all fetched vhosts Data + */ + $VhostBase = array(); + $VhostBase['exists'] = false; + //$VhostBase['RECORDS'] = array(); + $VhostBase['apacheServerName'] = array(); + $VhostBase['apacheConfig'] = array(); + + $Vhosts = array(); + + /* Get & Parse all vhosts entries + */ + $ldap->ls("(&(objectClass=apacheConfig)(apacheServerName=*))",$HostDn,array("*")); + $tmp_res = array(); + while($attrs = $ldap->fetch()) { + $tmp_res[] = $attrs; + } + + /* Parse fetched vhosts + */ + foreach($tmp_res as $attrs){ + + $apacheServerName = $attrs['apacheServerName'][0]; + $apacheDocumentRoot = $attrs['apacheDocumentRoot'][0]; + $apacheServerAdmin = $attrs['apacheServerAdmin'][0]; + $Vhosts[$apacheServerName] = $VhostBase; + $Vhosts[$apacheServerName]['exists'] = true; + + /* Set basic attributes + */ + if(isset($attrs["apacheConfig"][0])){ + $Vhosts[$apacheServerName]["apacheConfig"] = $attrs["apacheConfig"][0]; + } + + /* Set initial vhosts name, to be able to detect if this entry was renamed + */ + $Vhosts[$apacheServerName]['InitialApacheServerName'] = $apacheServerName; + $Vhosts[$apacheServerName]['apacheServerName'] = $apacheServerName; + $Vhosts[$apacheServerName]['apacheDocumentRoot'] = $apacheDocumentRoot; + $Vhosts[$apacheServerName]['apacheServerAdmin'] = $apacheServerAdmin; + + + if (isset($attrs['apacheServerAlias'])){ + for($i = 0 ; $i < $attrs['apacheServerAlias']['count']; $i ++){ + $Vhosts[$apacheServerName]['apacheServerAlias'][] = $attrs['apacheServerAlias'][$i]; + } + } + + if (isset($attrs['apacheScriptAlias'])){ + for($i = 0 ; $i < $attrs['apacheScriptAlias']['count']; $i ++){ + $Vhosts[$apacheServerName]['apacheScriptAlias'][] = $attrs['apacheScriptAlias'][$i]; + } + } + + } + return($Vhosts); + } + + + /* This function compares two apache vhosts objects and returns an + * array with following indexes + * - delete, for vhost entries which must be deleted (only if vhost entries is removed) + * - rename, if a dn must be renamed, for example, the apacheServerName has changed + * - add, if there is a new vhost entries created + */ + public static function getVhostEntriesDiff($config,$newVhosts,$HostDn) + { + $oldVhosts = apacheUtils::getVhostEntries($config,$HostDn,true); + + $move = array(); + $add = array(); + $del = array(); + + /* Generate a template for vhosts with default values + */ + $zoneBase = array(); + $zoneBase['objectClass'] = array("top","apacheConfig"); + $zoneBase['apacheServerName'] = ""; + + /* Contains all renamed apacheServerNames + * For vhosts entry udpdates + */ + $PrePareVhostEntries = array(); + + /* Walk through all vhosts and detect renamed/added/deleted vhosts ... + */ + foreach($newVhosts as $name => $zone){ + + /* This vhosts was renamed + */ + if((!empty($zone['InitialApacheServerName'])) && ($zone['InitialApacheServerName'] != $zone['apacheServerName'])){ + + /* Move old vhosts to new position + */ + $oldDn = "apacheServerName=".$zone['InitialApacheServerName'].",".$HostDn; + $newDn = "apacheServerName=".$zone['apacheServerName'].",".$HostDn; + $PrePareVhostEntries[$zone['InitialApacheServerName']] = $zone['apacheServerName']; + $move [$oldDn] = $newDn; + } + + /* Get old vhosts if available + */ + $oldVhost=array(); + if(isset($oldVhosts[$zone['InitialApacheServerName']])){ + if(!empty($oldVhosts[$zone['InitialApacheServerName']])){ + $oldVhost = $oldVhosts[$zone['InitialApacheServerName']]; + } + } + + /* Create vhosts entry and put it in our add queue + */ + $newDn = "apacheServerName=".$zone['apacheServerName'].",".$HostDn; + $obj = $zoneBase; + $obj['apacheServerName'] = $zone['apacheServerName']; + $obj['apacheDocumentRoot'] = $zone['apacheDocumentRoot']; + $obj['apacheServerAdmin'] = $zone['apacheServerAdmin']; + + if(!empty($zone['apacheServerAlias'])) { + + foreach($zone['apacheServerAlias'] as $rec){ + $obj['apacheServerAlias'][] = $rec; + } + } + + if(!empty($zone['apacheScriptAlias'])) { + foreach($zone['apacheScriptAlias'] as $rec){ + $obj['apacheScriptAlias'][] = $rec; + } + } + + /* Append udpated Vhost Entry to our add queue + */ + $add[$newDn] = $obj; + + /* Remove currently managed vhosts from oldVhosts. + * this gives us the ability to detect removed vhosts + */ + if(isset($oldVhosts[$zone['InitialApacheServerName']])){ + unset($oldVhosts[$zone['InitialApacheServerName']]); + } + } + + /* The rest of our oldVhosts must be deleted + * because they are no longer available in newVhosts anymore. + */ + foreach($oldVhosts as $zone) { + $oldDn = "apacheServerName=".$zone['InitialApacheServerName'].",".$HostDn; + $del[$oldDn] = ""; + } + + /* Check for entries which must be updated + */ + $zoneUpdates = array(); + $udpate = array(); + if(count($PrePareVhostEntries)){ + $ldap = $config->get_ldap_link(); + foreach($PrePareVhostEntries as $FromVhostName => $ToVhostName){ + $ldap->cd($HostDn); + $ldap->search("(&(objectClass=apacheConfig)(apacheServerName=".$FromVhostName."))",array("apacheServerName")); + while($attrs = $ldap->fetch()){ + $zoneUpdates[$attrs['dn']] = array("apacheServerName"=>$ToVhostName); + } + } + } + + $ret = array("del" => $del , "move" => $move , "add" => $add,"vhostUpdates"=>$zoneUpdates); + // user_error(print_r($ret,true)); + return($ret); + } + + /* returns the dn for a specified zone + */ + function getVhostDN($config,$apacheServerNameMix) + { + $ret = ""; + if(!strstr($apacheServerNameMix, '/')) { + print_red(sprintf(_("Undefined vhost name '%s'. Vhost name must look like this 'www.example.com or example.com'."),$apacheServerNameMix)); + return($ret); + } + + $apacheServerNameIndex = explode("/",$apacheServerNameMix); + $apacheServerName = $apacheServerNameIndex[1]; + $nameServer = strtolower($apacheServerNameIndex[0]); + $ldap = $config->get_ldap_link(); + + /* search for the nameserver */ + $ldap-> cd($config->current['BASE']); + $ldap->search("(&(objectClass=goServer)(cn=".$nameServer."))",array("cn")); + if($ldap->count()){ + $attr = $ldap->fetch(); + } else { + return($ret); + } + + $ldap-> cd($attr['dn']); + $ldap->search("(&(objectClass=apacheConfig)(apacheServerName=".$apacheServerName."))",array("apacheServerName")); + if($ldap->count()){ + $attr = $ldap->fetch(); + return($attr['dn']); + } + + return($ret); + } + + + /* returns all available vhosts + * array[reverseName] = apacheServerName; + */ + function getAvailableVhosts($config) + { + $ret = array(); + $ldap = $config->get_ldap_link(); + $ldap->cd ($config->current['BASE']); + + /* Search for vhosts ... + */ + $ldap->search("(&(objectClass=apacheConfig)(apacheServerName=*))",array("apacheServerName")); + + $ForwardVhosts = array(); + $zones = array(); + + while($at = $ldap->fetch()){ + $ForwardVhosts[$at['dn']] = $at; + } + + foreach($ForwardVhosts as $dn => $obj){ + + if(preg_match("/".$dn."/",$Rdn)){ + $zones[$Robj['apacheServerName'][0]] =$obj['apacheServerName'][0]; + } + } + return($zones); + } } ?> -- 2.30.2