use custom function to get client ip since Symfony's sucks

This commit is contained in:
printempw 2016-12-31 13:56:53 +08:00
parent 6d6abf41f5
commit f7159e0bbb
3 changed files with 23 additions and 7 deletions

View File

@ -117,17 +117,16 @@ class AuthController extends Controller
// If amount of registered accounts of IP is more than allowed amounts, // If amount of registered accounts of IP is more than allowed amounts,
// then reject the register. // then reject the register.
if (User::where('ip', $request->ip())->count() < option('regs_per_ip')) if (User::where('ip', Utils::getClientIp())->count() < option('regs_per_ip'))
{ {
// Register a new user. // Register a new user.
// If the email is already registered, // If the email is already registered,
// it will return a false value. // it will return a false value.
$user = User::register( $user = User::register(
$request->input('email'), $request->input('email'),
$request->input('password'), $request->input('password'), function($user) use ($request)
function($user) use ($request)
{ {
$user->ip = $request->ip(); $user->ip = Utils::getClientIp();
$user->score = option('user_initial_score'); $user->score = option('user_initial_score');
$user->register_at = Utils::getTimeFormatted(); $user->register_at = Utils::getTimeFormatted();
$user->last_sign_at = Utils::getTimeFormatted(time() - 86400); $user->last_sign_at = Utils::getTimeFormatted(time() - 86400);

View File

@ -111,10 +111,9 @@ class SetupController extends Controller
// register super admin // register super admin
$user = User::register( $user = User::register(
$request->input('email'), $request->input('email'),
$request->input('password'), $request->input('password'), function ($user)
function ($user) use ($request)
{ {
$user->ip = $request->ip(); $user->ip = Utils::getClientIp();
$user->score = option('user_initial_score'); $user->score = option('user_initial_score');
$user->register_at = Utils::getTimeFormatted(); $user->register_at = Utils::getTimeFormatted();
$user->last_sign_at = Utils::getTimeFormatted(time() - 86400); $user->last_sign_at = Utils::getTimeFormatted(time() - 86400);

View File

@ -8,6 +8,24 @@ use App\Exceptions\PrettyPageException;
class Utils class Utils
{ {
/**
* Returns the client IP address.
*
* @return string
*/
public static function getClientIp()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
/** /**
* Rename uploaded file * Rename uploaded file
* *