Files
core/app/Http/Controllers/Admin/Login.php
T

62 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\LoginRequest;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
/**
* Class Login
*
* @package App\Http\Controllers\Admin
*
* @todo use trait ThrottlesLogins for disabling brutal-force password cracking
*/
class Login extends Controller
{
/**
* Login handler
*
* @param LoginRequest $request
*
* @return \Illuminate\Http\RedirectResponse
*/
public function postLogin(LoginRequest $request)
{
$email = $request->email;
// try to find user
$user = User::where('email', $email)
->where('role', '!=', User::ROLE_VISITOR)
->where('status', User::STATE_ACTIVE)
->first();
if (!$user) {
return $this->loginFailed();
}
// try to log in user
if (Hash::check($request->password, $user->password)) {
Auth::login($user);
$redirect = $request->redirectTo ? $request->redirectTo : route('admin.dashboard');
return redirect()->intended($redirect);
}
// login invalid, redirect and inform the user
return $this->loginFailed();
}
private function loginFailed()
{
return redirect()
->route('login')
->with('error', trans('auth.failed'))
->withInput();
}
}