. */ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\User; use Illuminate\Foundation\Auth\AuthenticatesUsers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers { attemptLogin as protected originalAttemptLogin; } /** * Where to redirect users after login. * * @var string */ protected $redirectTo = '/dashboard'; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest')->except('logout'); } // We can't customise the error message, since that would imply overriding the login method, which is large. // Also, the user should never know that they're banned. public function attemptLogin(Request $request) { $user = User::where('email', $request->email)->first(); if ($user) { $isBanned = $user->isBanned(); if ($isBanned) { return false; } else { return $this->originalAttemptLogin($request); } } return $this->originalAttemptLogin($request); } public function authenticated(Request $request, User $user) { if (!config('demo.is_enabled')) { if ($user->originalIP !== $request->ip()) { Log::alert('User IP address changed from last login. Updating.', [ 'prev' => $user->originalIP, 'new' => $request->ip() ]); $user->originalIP = $request->ip(); $user->save(); } } } }