ваша логика верна, вы должны переопределить login
и authenticated
методы в LoginController
.
ваши методы должны быть такими, как показано ниже:
этот метод должен быть в вашем LoginController.php
:
class LoginController extends Controller
{
use AuthenticatesUsers {
login as public loginParent;
}
protected function login(Request $request){
$default = '/';
$user = User::where('email', $request->get('email'))->NotActive->first();
if($user){
return redirect()->intended($default);
}
return $this->loginParent($request);
}
protected function authenticated(Request $request, $user)
{
if($user->not_active) {
$this->logout($request);
}
}
}
, тогда мы должны создать ScopeNotActive
метод в User.php
Model as Local Scope:
//User.php
public function ScopeNotActive($query){
return $query->where('userStatus', '!=', 1);
}
и Mutator, чтобы проверить, не активен ли пользователь:
// User.php
public function getNotActiveAttribute(){
return $this->userStatus != 1;
}