Login should work again. Problem was in non-setting sessions. This was resolved by adding middleware "web" to admin group. Thanks to great documentation for NOT MENTIONING this pitfall!
63 lines
1.5 KiB
PHP
63 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests;
|
|
use App\Http\Requests\LoginRequest;
|
|
use App\Models\User;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Support\Facades\Session;
|
|
|
|
/**
|
|
* 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);
|
|
|
|
return redirect()->intended(route('admin.dashboard'));
|
|
}
|
|
|
|
// login invalid, redirect and inform the user
|
|
return $this->loginFailed();
|
|
}
|
|
|
|
private function loginFailed()
|
|
{
|
|
return redirect()
|
|
->route('login')
|
|
->with('error', trans('auth.failed'))
|
|
->withInput();
|
|
}
|
|
}
|