diff --git a/.travis.yml b/.travis.yml index e9cda58..a5bd74a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,6 @@ +git: + depth: 3 + language: php sudo: false diff --git a/README.markdown b/README.markdown index c68a7ac..515fa9d 100644 --- a/README.markdown +++ b/README.markdown @@ -1,8 +1,8 @@ -[![Build Status](https://travis-ci.org/miniflux/miniflux.svg?branch=master)](https://travis-ci.org/miniflux/miniflux) - Miniflux - Minimalist News Reader ================================= +[![Build Status](https://travis-ci.org/miniflux/miniflux.svg?branch=master)](https://travis-ci.org/miniflux/miniflux) + Miniflux is a minimalist and web-based RSS reader. Features diff --git a/lib/Request.php b/lib/Request.php index 45ba7f7..e4a66ed 100644 --- a/lib/Request.php +++ b/lib/Request.php @@ -2,6 +2,12 @@ namespace Request; +function get_server_variable($variable) +{ + return isset($_SERVER[$variable]) ? $_SERVER[$variable] : ''; +} + + function param($name, $default_value = null) { return isset($_GET[$name]) ? $_GET[$name] : $default_value; @@ -53,7 +59,6 @@ function file_content($field) } - function uri() { return $_SERVER['REQUEST_URI']; @@ -64,3 +69,35 @@ function is_post() { return $_SERVER['REQUEST_METHOD'] === 'POST'; } + + +function get_user_agent() +{ + return get_server_variable('HTTP_USER_AGENT') ?: t('Unknown'); +} + + +function get_ip_address() +{ + $keys = array( + 'HTTP_X_REAL_IP', + 'HTTP_CLIENT_IP', + 'HTTP_X_FORWARDED_FOR', + 'HTTP_X_FORWARDED', + 'HTTP_X_CLUSTER_CLIENT_IP', + 'HTTP_FORWARDED_FOR', + 'HTTP_FORWARDED', + 'REMOTE_ADDR' + ); + + foreach ($keys as $key) { + $value = get_server_variable($key); + if ($value !== '') { + foreach (explode(',', $value) as $ip_address) { + return trim($ip_address); + } + } + } + + return t('Unknown'); +} diff --git a/lib/helpers.php b/lib/helpers.php index 42ccaab..c4ca74c 100644 --- a/lib/helpers.php +++ b/lib/helpers.php @@ -2,36 +2,6 @@ namespace Helper; -// Get the real IP address of the connected user -function get_ip_address() -{ - $keys = array( - 'HTTP_X_REAL_IP', - 'HTTP_CLIENT_IP', - 'HTTP_X_FORWARDED_FOR', - 'HTTP_X_FORWARDED', - 'HTTP_X_CLUSTER_CLIENT_IP', - 'HTTP_FORWARDED_FOR', - 'HTTP_FORWARDED', - 'REMOTE_ADDR' - ); - - foreach ($keys as $key) { - $value = get_server_variable($key); - if ($value !== '') { - foreach (explode(',', $value) as $ip_address) { - return trim($ip_address); - } - } - } - - return t('Unknown'); -} - -function get_server_variable($variable) -{ - return isset($_SERVER[$variable]) ? $_SERVER[$variable] : ''; -} function is_secure_connection() { diff --git a/models/config.php b/models/config.php index 7fb6a7a..a830ad5 100644 --- a/models/config.php +++ b/models/config.php @@ -363,9 +363,3 @@ function reload() $_SESSION['config'] = get_all(); Translator\load(get('language')); } - -// Get the user agent of the connected user -function get_user_agent() -{ - return empty($_SERVER['HTTP_USER_AGENT']) ? t('Unknown') : $_SERVER['HTTP_USER_AGENT']; -} diff --git a/models/user.php b/models/user.php index b2f2b42..260a112 100644 --- a/models/user.php +++ b/models/user.php @@ -6,7 +6,7 @@ use SimpleValidator\Validator; use SimpleValidator\Validators; use PicoDb\Database; use Session; -use Helper; +use Request; use Model\Config; use Model\RememberMe; use Model\Database as DatabaseModel; @@ -62,7 +62,7 @@ function validate_login(array $values) // Setup the remember me feature if (! empty($values['remember_me'])) { - $cookie = RememberMe\create(DatabaseModel\select(), $values['username'], Helper\get_ip_address(), Config\get_user_agent()); + $cookie = RememberMe\create(DatabaseModel\select(), $values['username'], Request\get_ip_address(), Request\get_user_agent()); RememberMe\write_cookie($cookie['token'], $cookie['sequence'], $cookie['expiration']); } } else { diff --git a/tests/unit/HelperTest.php b/tests/unit/HelperTest.php deleted file mode 100644 index c136348..0000000 --- a/tests/unit/HelperTest.php +++ /dev/null @@ -1,13 +0,0 @@ - '127.0.0.1'); - $this->assertEquals('127.0.0.1', Helper\get_ip_address()); - - $_SERVER = array('HTTP_FORWARDED_FOR' => ' 127.0.0.1, 192.168.0.1'); - $this->assertEquals('127.0.0.1', Helper\get_ip_address()); - } -} diff --git a/tests/unit/RequestTest.php b/tests/unit/RequestTest.php new file mode 100644 index 0000000..fdd21ea --- /dev/null +++ b/tests/unit/RequestTest.php @@ -0,0 +1,25 @@ + '127.0.0.1'); + $this->assertEquals('127.0.0.1', Request\get_ip_address()); + + $_SERVER = array('HTTP_FORWARDED_FOR' => ' 127.0.0.1, 192.168.0.1'); + $this->assertEquals('127.0.0.1', Request\get_ip_address()); + + $_SERVER = array(); + $this->assertEquals('Unknown', Request\get_ip_address()); + } + + public function testGetUserAgent() + { + $_SERVER = array(); + $this->assertEquals('Unknown', Request\get_user_agent()); + + $_SERVER = array('HTTP_USER_AGENT' => 'foobar'); + $this->assertEquals('foobar', Request\get_user_agent()); + } +}