0
금지 된 (또는이 경우 "비활성"인) 사용자를 특별한보기로 리디렉션하기위한 미들웨어를 만드는 데 문제가 있습니다. 전혀 작동하지 않는 것 같아서 누락 된 것이 있어야합니다.Laravel 금지/비활성 사용자 미들웨어 문제
미들웨어
namespace App\Http\Middleware;
use Closure;
use Auth;
class NotInactive extends Auth
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::user()->isInactive())
{
return redirect('/inactive');
}
else{
return $next($request);
}
}
}
Kernel.php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware \ConvertEmptyStringsToNull::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\NotInactive::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
'admin' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\App\Http\Middleware\Admin::class,
]
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'notinactive' => \App\Http\Middleware\NotInactive::class,
];
}
User.php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'id', 'first_name', 'last_name', 'middle', 'email', 'status', 'role'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token'
];
// Gets all of the skills the user knows
public function skills()
{
return $this->belongsToMany('App\Skill')->withPivot('skill_level');
}
// Gets all of the roles this user holds
public function roles()
{
return $this->belongsToMany('App\Role', 'role_user');
}
public function isAdmin()
{
return $this->roles()->where('name', 'Admin')->exists();
}
public function isInactive()
{
return $this->roles()->where('name', 'Inactive')->exists();
}
}
에 관해서는 어떤 생각이 내가 부족 무엇이나 내가 잘못 어디로 갔는지? 그래도 오류는 발생하지 않습니다.
그래, 그 문제가 발생했습니다. 나는 내 문제가 무엇인지 알아 냈다 : 나는 불필요한 관계가 있었다. 그러나 당신의 제안은 효과가있는 것 같습니다. 감사! –