File: /home/armgroup/libs/app/Http/Controllers/Auth/LoginController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use App\Rules\Mobile;
use Artesaos\SEOTools\Facades\SEOTools;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
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;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function username()
{
return 'mobile';
}
protected function validateLogin(Request $request)
{
$request->validate([
$this->username() => ['required', 'string', new Mobile],
'password' => 'required|string',
]);
}
public function redirectPath()
{
if (auth()->user()->can('dashboard access')) {
$this->redirectTo = '/admin';
}
return $this->redirectTo;
}
public function showLoginForm()
{
SEOTools::setTitle(__('Login'));
SEOTools::setDescription(__('Login'));
return view('auth.login');
}
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
if (auth()->user()->addresses()->count()) {
$address = auth()->user()->addresses->last();
session(['address_id' => $address->id]);
}
if ($response = $this->authenticated($request, $this->guard()->user())) {
return $response;
}
return $request->wantsJson()
? new JsonResponse([], 204)
: redirect()->intended($this->redirectPath());
}
}