Move methods getIpAddress() and getUserAgent() to the Request class
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
namespace Auth;
|
namespace Auth;
|
||||||
|
|
||||||
use Model\User;
|
use Model\User;
|
||||||
|
use Core\Request;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Database authentication
|
* Database authentication
|
||||||
@@ -40,8 +41,8 @@ class Database extends Base
|
|||||||
$this->lastLogin->create(
|
$this->lastLogin->create(
|
||||||
self::AUTH_NAME,
|
self::AUTH_NAME,
|
||||||
$user['id'],
|
$user['id'],
|
||||||
$this->user->getIpAddress(),
|
Request::getIpAddress(),
|
||||||
$this->user->getUserAgent()
|
Request::getUserAgent()
|
||||||
);
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ namespace Auth;
|
|||||||
|
|
||||||
require __DIR__.'/../../vendor/OAuth/bootstrap.php';
|
require __DIR__.'/../../vendor/OAuth/bootstrap.php';
|
||||||
|
|
||||||
|
use Core\Request;
|
||||||
use OAuth\Common\Storage\Session;
|
use OAuth\Common\Storage\Session;
|
||||||
use OAuth\Common\Consumer\Credentials;
|
use OAuth\Common\Consumer\Credentials;
|
||||||
use OAuth\Common\Http\Uri\UriFactory;
|
use OAuth\Common\Http\Uri\UriFactory;
|
||||||
@@ -44,8 +45,8 @@ class GitHub extends Base
|
|||||||
$this->lastLogin->create(
|
$this->lastLogin->create(
|
||||||
self::AUTH_NAME,
|
self::AUTH_NAME,
|
||||||
$user['id'],
|
$user['id'],
|
||||||
$this->user->getIpAddress(),
|
Request::getIpAddress(),
|
||||||
$this->user->getUserAgent()
|
Request::getUserAgent()
|
||||||
);
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ namespace Auth;
|
|||||||
|
|
||||||
require __DIR__.'/../../vendor/OAuth/bootstrap.php';
|
require __DIR__.'/../../vendor/OAuth/bootstrap.php';
|
||||||
|
|
||||||
|
use Core\Request;
|
||||||
use OAuth\Common\Storage\Session;
|
use OAuth\Common\Storage\Session;
|
||||||
use OAuth\Common\Consumer\Credentials;
|
use OAuth\Common\Consumer\Credentials;
|
||||||
use OAuth\Common\Http\Uri\UriFactory;
|
use OAuth\Common\Http\Uri\UriFactory;
|
||||||
@@ -45,8 +46,8 @@ class Google extends Base
|
|||||||
$this->lastLogin->create(
|
$this->lastLogin->create(
|
||||||
self::AUTH_NAME,
|
self::AUTH_NAME,
|
||||||
$user['id'],
|
$user['id'],
|
||||||
$this->user->getIpAddress(),
|
Request::getIpAddress(),
|
||||||
$this->user->getUserAgent()
|
Request::getUserAgent()
|
||||||
);
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace Auth;
|
namespace Auth;
|
||||||
|
|
||||||
|
use Core\Request;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LDAP model
|
* LDAP model
|
||||||
*
|
*
|
||||||
@@ -58,8 +60,8 @@ class Ldap extends Base
|
|||||||
$this->lastLogin->create(
|
$this->lastLogin->create(
|
||||||
self::AUTH_NAME,
|
self::AUTH_NAME,
|
||||||
$user['id'],
|
$user['id'],
|
||||||
$this->user->getIpAddress(),
|
Request::getIpAddress(),
|
||||||
$this->user->getUserAgent()
|
Request::getUserAgent()
|
||||||
);
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Auth;
|
namespace Auth;
|
||||||
|
|
||||||
|
use Core\Request;
|
||||||
use Core\Security;
|
use Core\Security;
|
||||||
use Core\Tool;
|
use Core\Tool;
|
||||||
|
|
||||||
@@ -107,8 +108,8 @@ class RememberMe extends Base
|
|||||||
$this->lastLogin->create(
|
$this->lastLogin->create(
|
||||||
self::AUTH_NAME,
|
self::AUTH_NAME,
|
||||||
$this->acl->getUserId(),
|
$this->acl->getUserId(),
|
||||||
$this->user->getIpAddress(),
|
Request::getIpAddress(),
|
||||||
$this->user->getUserAgent()
|
Request::getUserAgent()
|
||||||
);
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Auth;
|
namespace Auth;
|
||||||
|
|
||||||
|
use Core\Request;
|
||||||
use Core\Security;
|
use Core\Security;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -44,8 +45,8 @@ class ReverseProxy extends Base
|
|||||||
$this->lastLogin->create(
|
$this->lastLogin->create(
|
||||||
self::AUTH_NAME,
|
self::AUTH_NAME,
|
||||||
$user['id'],
|
$user['id'],
|
||||||
$this->user->getIpAddress(),
|
Request::getIpAddress(),
|
||||||
$this->user->getUserAgent()
|
Request::getUserAgent()
|
||||||
);
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -34,12 +34,11 @@ class User extends Base
|
|||||||
$this->response->redirect('?controller=app');
|
$this->response->redirect('?controller=app');
|
||||||
}
|
}
|
||||||
|
|
||||||
$redirect_query = $this->request->getStringParam('redirect_query');
|
|
||||||
$this->response->html($this->template->layout('user_login', array(
|
$this->response->html($this->template->layout('user_login', array(
|
||||||
'errors' => array(),
|
'errors' => array(),
|
||||||
'values' => array(),
|
'values' => array(),
|
||||||
'no_layout' => true,
|
'no_layout' => true,
|
||||||
'redirect_query' => $redirect_query,
|
'redirect_query' => $this->request->getStringParam('redirect_query'),
|
||||||
'title' => t('Login')
|
'title' => t('Login')
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
@@ -56,9 +55,10 @@ class User extends Base
|
|||||||
list($valid, $errors) = $this->authentication->validateForm($values);
|
list($valid, $errors) = $this->authentication->validateForm($values);
|
||||||
|
|
||||||
if ($valid) {
|
if ($valid) {
|
||||||
if ($redirect_query != "") {
|
if ($redirect_query !== '') {
|
||||||
$this->response->redirect('?'.$redirect_query);
|
$this->response->redirect('?'.$redirect_query);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$this->response->redirect('?controller=board');
|
$this->response->redirect('?controller=board');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -420,6 +420,7 @@ class User extends Base
|
|||||||
'errors' => array('login' => t('Google authentication failed')),
|
'errors' => array('login' => t('Google authentication failed')),
|
||||||
'values' => array(),
|
'values' => array(),
|
||||||
'no_layout' => true,
|
'no_layout' => true,
|
||||||
|
'redirect_query' => '',
|
||||||
'title' => t('Login')
|
'title' => t('Login')
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
@@ -481,6 +482,7 @@ class User extends Base
|
|||||||
'errors' => array('login' => t('GitHub authentication failed')),
|
'errors' => array('login' => t('GitHub authentication failed')),
|
||||||
'values' => array(),
|
'values' => array(),
|
||||||
'no_layout' => true,
|
'no_layout' => true,
|
||||||
|
'redirect_query' => '',
|
||||||
'title' => t('Login')
|
'title' => t('Login')
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,4 +148,61 @@ class Request
|
|||||||
return isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : '';
|
return isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the user agent
|
||||||
|
*
|
||||||
|
* @static
|
||||||
|
* @access public
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function getUserAgent()
|
||||||
|
{
|
||||||
|
return empty($_SERVER['HTTP_USER_AGENT']) ? t('Unknown') : $_SERVER['HTTP_USER_AGENT'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the real IP address of the user
|
||||||
|
*
|
||||||
|
* @static
|
||||||
|
* @access public
|
||||||
|
* @param bool $only_public Return only public IP address
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function getIpAddress($only_public = false)
|
||||||
|
{
|
||||||
|
$keys = array(
|
||||||
|
'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) {
|
||||||
|
|
||||||
|
if (isset($_SERVER[$key])) {
|
||||||
|
|
||||||
|
foreach (explode(',', $_SERVER[$key]) as $ip_address) {
|
||||||
|
|
||||||
|
$ip_address = trim($ip_address);
|
||||||
|
|
||||||
|
if ($only_public) {
|
||||||
|
|
||||||
|
// Return only public IP address
|
||||||
|
if (filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) {
|
||||||
|
return $ip_address;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
return $ip_address;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return t('Unknown');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Model;
|
namespace Model;
|
||||||
|
|
||||||
|
use Core\Request;
|
||||||
use Auth\Database;
|
use Auth\Database;
|
||||||
use SimpleValidator\Validator;
|
use SimpleValidator\Validator;
|
||||||
use SimpleValidator\Validators;
|
use SimpleValidator\Validators;
|
||||||
@@ -117,7 +118,7 @@ class Authentication extends Base
|
|||||||
if (! empty($values['remember_me'])) {
|
if (! empty($values['remember_me'])) {
|
||||||
|
|
||||||
$credentials = $this->backend('rememberMe')
|
$credentials = $this->backend('rememberMe')
|
||||||
->create($this->acl->getUserId(), $this->user->getIpAddress(), $this->user->getUserAgent());
|
->create($this->acl->getUserId(), Request::getIpAddress(), Request::getUserAgent());
|
||||||
|
|
||||||
$this->backend('rememberMe')->writeCookie($credentials['token'], $credentials['sequence'], $credentials['expiration']);
|
$this->backend('rememberMe')->writeCookie($credentials['token'], $credentials['sequence'], $credentials['expiration']);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -370,60 +370,4 @@ class User extends Base
|
|||||||
|
|
||||||
return array(false, $v->getErrors());
|
return array(false, $v->getErrors());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the user agent of the connected user
|
|
||||||
*
|
|
||||||
* @access public
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getUserAgent()
|
|
||||||
{
|
|
||||||
return empty($_SERVER['HTTP_USER_AGENT']) ? t('Unknown') : $_SERVER['HTTP_USER_AGENT'];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the real IP address of the connected user
|
|
||||||
*
|
|
||||||
* @access public
|
|
||||||
* @param bool $only_public Return only public IP address
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getIpAddress($only_public = false)
|
|
||||||
{
|
|
||||||
$keys = array(
|
|
||||||
'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) {
|
|
||||||
|
|
||||||
if (isset($_SERVER[$key])) {
|
|
||||||
|
|
||||||
foreach (explode(',', $_SERVER[$key]) as $ip_address) {
|
|
||||||
|
|
||||||
$ip_address = trim($ip_address);
|
|
||||||
|
|
||||||
if ($only_public) {
|
|
||||||
|
|
||||||
// Return only public IP address
|
|
||||||
if (filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) {
|
|
||||||
return $ip_address;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
return $ip_address;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return t('Unknown');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user