Привет, я работаю над мульти-аутентификацией Laravel, которая работает нормально, администратор перенаправляет на страницу администратора, а пользователь перенаправляет на домашнюю страницу, но я хочу, чтобы, если пользователь не одобрен, он не должен входить в систему и видеть ошибку " Вы можете войти через 24 часа после того, как ваш аккаунт будет одобрен "
Я добавляю этот код в промежуточное ПО администратора, но он не работает:
if (auth()->check() && $request->user()->status == 0) {
return redirect()->guest('login');
}else{
return redirect('login')->with('flash_message_error','You can login after approval');
}
Промежуточное программное обеспечение администратора:
public function handle($request, Closure $next)
{
if (auth()->check() && $request->user()->admin == 0) {
return redirect()->guest('home');
}
return $next($request);
}
Маршруты:
Route::group(['middleware' => ['web','auth']], function(){
Route::get('/home', function(){
if (Auth::user()->admin == 0) {
return view('home');
}else {
$users['users'] = \App\User::all();
return view('adminhome', $users);
}
});
});
модель пользователя:
protected $fillable = [
'name', 'email', 'password', 'admin',
];
миграция этого id db:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->boolean('admin')->default(0);
$table->boolean('approved')->default(0);
$table->rememberToken();
$table->timestamps();
});
Я просто хочу, чтобы когда пользователь регистрировался, он должен был дождаться, пока утвержденный столбец в базе данных не станет 1 вручную