Valider 961a7986 rédigé par esj's avatar esj
Parcourir les fichiers

Implémentation de #961 : il est maintenant possible de spécifier des machines...

Implémentation de #961 : il est maintenant possible de spécifier des machines ou des domaines pour lesquels le proxy ne doit pas etre utilisé. On en profite pour aller jusqu'au bout de l'usage d'Ajax dans ce cas de configuraiton, mais ça marche toujours sans Ajax (mais comment on n'a pu supporter si longtemps une lenteur pareille dans ce cas?). On en profite aussi pour revoir les libellés, d'une part pour signaler que c'est nécessaire à l'accès à la documentation (on aurait du le faire depuis longtemps) et pour que la validation en mode Ajax soit suivie d'une différence graphique (sinon, on avait l'impression que rien ne s'était passé).

Attention, il y a un gros Hack pour forcer ces modifications dans les libellés, il faut une intégration propre à terme.
parent 07cb84ef
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+2 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -347,6 +347,7 @@ dist/win_width.htc -text
ecrire/action/acceder_document.php -text
ecrire/action/activer_plugins.php -text
ecrire/action/configurer.php -text
ecrire/action/configurer_relayeur.php -text
ecrire/action/converser.php -text
ecrire/action/copier_local.php -text
ecrire/action/dater.php -text
@@ -464,6 +465,7 @@ ecrire/exec/config_lang.php -text
ecrire/exec/config_multilang.php -text
ecrire/exec/configuration.php -text
ecrire/exec/configurer.php -text
ecrire/exec/configurer_relayeur.php -text
ecrire/exec/controle_forum.php -text
ecrire/exec/controle_petition.php -text
ecrire/exec/convert_sql_utf8.php -text
+37 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2007                                                *
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
 *                                                                         *
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
\***************************************************************************/

if (!defined("_ECRIRE_INC_VERSION")) return;

// Mise a jour de l'option de configuration du proxy

include_spip('configuration/relayeur');

function action_configurer_relayeur_dist() {

	$securiser_action = charger_fonction('securiser_action', 'inc');
	$arg = $securiser_action();

	$http_proxy = _request('http_proxy');
	$http_noproxy = _request('http_noproxy');
	$test_proxy = _request('test_proxy');
	$tester_proxy = _request('tester_proxy');

	$test = configuration_relayeur_post($http_proxy, $http_noproxy, $test_proxy, $tester_proxy); 

	// message a afficher dans l'exec de retour

	$r = rawurldecode(_request('redirect'));
	$r = parametre_url($r, 'retour_proxy', $test, "&");
	redirige_par_entete($r);
}
?>
+80 −11
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -13,15 +13,34 @@
if (!defined("_ECRIRE_INC_VERSION")) return;

include_spip('inc/presentation');
include_spip('inc/config');

function configuration_relayeur_dist()
/// A PASSER DANS LES FICHIERS DE LANGUE

_T('texte_test_proxy'); // force le chargement du fichier de langue
// pour ecraser la valeur ci-dessous ensuite 
$GLOBALS[$GLOBALS['idx_lang']]['texte_proxy'] = 'Dans certains cas
		(intranet, r&eacute;seaux prot&eacute;g&eacute;s...),
		les sites distants
		(documentation de SPIP, sites syndiqu&eacute;s etc.)
		ne sont accessibles qu\'&agrave; travers un
		<i>proxy HTTP</i>.
		Le cas &eacute;ch&eacute;ant,
		indiquez ci-dessous son adresse, sous la forme
		@proxy_en_cours@.
		En g&eacute;n&eacute;ral, vous laisserez cette case vide.';
// et un nouveau, gaffe au _L implicite
$GLOBALS[$GLOBALS['idx_lang']]['pas_de_proxy_pour'] = 'Au besoin, indiquez les machines ou domaines pour lesquels ce proxy ne doit pas s\'appliquer (par exemple: @exemple@)&nbsp;:';

function configuration_relayeur_dist($retour_proxy)
{
	global $spip_lang_right, $spip_lang_left;
	global $spip_lang_left;

	$res = $submit = '';

	if ($http_proxy = $GLOBALS['meta']["http_proxy"]) {
	$http_proxy = $GLOBALS['meta']["http_proxy"];
	$http_noproxy = $GLOBALS['meta']["http_noproxy"];

	if ($http_proxy) {
		include_spip('inc/distant');
		// Masquer un eventuel password authentifiant
		$http_proxy=entites_html(no_password_proxy_url($http_proxy));
@@ -33,10 +52,7 @@ function configuration_relayeur_dist()
			. "<input type='text' name='test_proxy' value='http://www.spip.net/' size='40' class='forml' />"
			. "</p>";

			// ce retour_proxy provient soit de l'url, si on est en ajax,
			// soit des globales si on est en mode sans javascript. Joli :(
			if($retour_proxy = _request('retour_proxy')
			OR $retour_proxy = $GLOBALS['retour_proxy']) {
			if($retour_proxy) {
				$res .= debut_boite_info(true)
				. $retour_proxy
				. fin_boite_info(true);
@@ -46,18 +62,71 @@ function configuration_relayeur_dist()
		}
	}

	$encours = $http_proxy ? $http_proxy : "http://proxy:8080";
	$exemple = $http_noproxy ? $http_noproxy : "127.0.0.1 .mondomaine.net";
	$res = "\n<div class='verdana2'>"
	. propre(_T('texte_proxy'))
	  . propre(_T('texte_proxy', array('proxy_en_cours' => "<b><tt><html>$encours</html></tt></b>")))
	. "</div>"
	. "\n<div class='verdana2'>"
	. "<input type='text' name='http_proxy' size='40' class='forml' value='$http_proxy' />"
	. "<br />"
	  . propre(_T('pas_de_proxy_pour', array('exemple' => "<b><tt><html>$exemple</html></tt></b>")))
	. "<input type='text' name='http_noproxy' size='40' class='forml' value='$http_noproxy' />"
	. $res
	. "</div>";

	$res = debut_cadre_trait_couleur("base-24.gif", true, "", _T('info_sites_proxy').aide ("confhttpproxy"))
	.  ajax_action_post('configurer', 'relayeur', 'config_fonctions', '', $res, $submit)
	.  ajax_action_post('configurer_relayeur', 0, 'config_fonctions', '', $res, $submit)
	.  fin_cadre_trait_couleur(true);

	return ajax_action_greffe("configurer-relayeur", '', $res);
	return ajax_action_greffe("configurer_relayeur", 0, $res);
}

function configuration_relayeur_post ($http_proxy, $http_noproxy, $test_proxy, $tester_proxy) 
{
	// http_proxy : ne pas prendre en compte la modif si le password est '****'
	if (preg_match(',:\*\*\*\*@,', $http_proxy))
		$http_proxy = $GLOBALS['meta']['http_proxy'];

	$retour_proxy = '';
	if ($tester_proxy AND $http_proxy) {
		if (!$test_proxy) {
			$retour_proxy = _T('info_adresse_non_indiquee');
		} else {
			include_spip('inc/texte'); // pour aide, couper, lang
			if (strncmp("http://", $http_proxy,7)!=0)
			  $page = '';
			else {
			  include_spip('inc/distant');
			  $page = recuperer_page($test_proxy, true);
			}
			if ($page)
				$retour_proxy = "<p>"._T('info_proxy_ok')."</p>\n<tt>".couper(entites_html($page),300)."</tt>";
			else
				$retour_proxy = _T('info_impossible_lire_page', array('test_proxy' => $test_proxy))
				. " <tt>".no_password_proxy_url($http_proxy)."</tt>."
				. aide('confhttpproxy');
		}
	}
	if ($t = ($http_proxy !== NULL)) {
		ecrire_meta('http_proxy', $http_proxy);
	}
	if ($http_noproxy !== NULL) {
		ecrire_meta('http_noproxy', $http_noproxy);
		$t = true;
	}
	if ($t) ecrire_metas();
	return $retour_proxy;
}

// Ne pas afficher la partie 'password' du proxy
// http://doc.spip.org/@no_password_proxy_url
function no_password_proxy_url($http_proxy) {
        if ($p = @parse_url($http_proxy)
        AND $p['pass']) {
                $p['pass'] = '****';
                $http_proxy = glue_url($p);
        }
        return $http_proxy;
}
?>
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -67,7 +67,7 @@ function exec_config_fonctions_dist()

	  $previsualiseur(), // Previsualisation sur le site public

	  $relayeur(); // Proxy pour lire syndication & doc
	  $relayeur(_request('retour_proxy')); // Proxy pour syndication & doc
//
// Choix supplementaires proposees par les plugins
//
+20 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2007                                                *
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
 *                                                                         *
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
\***************************************************************************/

if (!defined("_ECRIRE_INC_VERSION")) return;

function exec_configurer_relayeur_dist()
{
	$relayeur = charger_fonction('relayeur', 'configuration');
	ajax_retour($relayeur(_request('retour_proxy')));
}
?>
Chargement en cours