From f0d620f33277d09a7523baf7bdd686d5c83755e9 Mon Sep 17 00:00:00 2001 From: onli Date: Sun, 24 Mar 2013 18:13:48 +0100 Subject: [PATCH] initial release of proxy_realip for kleinerChemiker --- serendipity_event_proxy_realip/ChangeLog | 3 + .../UTF-8/lang_de.inc.php | 6 ++ .../UTF-8/lang_en.inc.php | 6 ++ .../lang_de.inc.php | 6 ++ .../lang_en.inc.php | 6 ++ .../serendipity_event_proxy_realip.php | 82 +++++++++++++++++++ 6 files changed, 109 insertions(+) create mode 100644 serendipity_event_proxy_realip/ChangeLog create mode 100644 serendipity_event_proxy_realip/UTF-8/lang_de.inc.php create mode 100644 serendipity_event_proxy_realip/UTF-8/lang_en.inc.php create mode 100644 serendipity_event_proxy_realip/lang_de.inc.php create mode 100644 serendipity_event_proxy_realip/lang_en.inc.php create mode 100644 serendipity_event_proxy_realip/serendipity_event_proxy_realip.php diff --git a/serendipity_event_proxy_realip/ChangeLog b/serendipity_event_proxy_realip/ChangeLog new file mode 100644 index 00000000..e0bb4762 --- /dev/null +++ b/serendipity_event_proxy_realip/ChangeLog @@ -0,0 +1,3 @@ +1.0.0: +---- +# Release diff --git a/serendipity_event_proxy_realip/UTF-8/lang_de.inc.php b/serendipity_event_proxy_realip/UTF-8/lang_de.inc.php new file mode 100644 index 00000000..3ee37c7b --- /dev/null +++ b/serendipity_event_proxy_realip/UTF-8/lang_de.inc.php @@ -0,0 +1,6 @@ +add('name', PLUGIN_EVENT_PROXY_REALIP_NAME); + $propbag->add('description', PLUGIN_EVENT_PROXY_REALIP_DESC); + $propbag->add('stackable', false); + $propbag->add('author', 'kleinerChemiker'); + $propbag->add('version', '1.0.0'); + $propbag->add('requirements', array('serendipity' => '1.6.2', 'smarty' => '2.6.7', 'php' => '5.3.0')); + $propbag->add('groups', array('BACKEND_FEATURES')); + $propbag->add('event_hooks', array('frontend_configure' => true)); + + $conf_array = array(); + $conf_array[] = 'realip_var'; + + $propbag->add('configuration', $conf_array); + } + + function introspect_config_item($name, &$propbag) { + switch ($name) { + case 'realip_var' : + $propbag->add('type', 'string'); + $propbag->add('name', PLUGIN_EVENT_PROXY_REALIP); + $propbag->add('description', PLUGIN_EVENT_PROXY_REALIP_VAR_DESC); + $propbag->add('default', '_SERVER[\'X-FORWARDED-FOR\']'); + break; + default : + $propbag->add('type', 'boolean'); + $propbag->add('name', constant($name)); + $propbag->add('description', sprintf(APPLY_MARKUP_TO, constant($name))); + $propbag->add('default', 'true'); + } + return true; + } + + function event_hook($event, &$bag, &$eventData, $addData = null) { + + static $realip_var = NULL; + + $hooks = &$bag->get('event_hooks'); + + if ($realip_var === null) { + $realip_var = $this->get_config('realip_var', FALSE); + eval('$realip_ip = ' . $realip_var . ';'); + $realip_ip = filter_var($realip_ip, FILTER_VALIDATE_IP); + } + + if (isset($hooks[$event])) { + switch ($event) { + case 'frontend_configure': + if ($realip_ip != FALSE) { + $_SERVER["REMOTE_ADDR"] = $realip_ip; + } + break; + + default: + return false; + } + } + return false; + } + +} +