Laravel 5.1でアプリを作ろうとしています。
ユーザー テーブルには、管理者、エージェント、ファーマーの 3 種類のユーザーがいます。users テーブルには user_type_id という名前の列があり、admin はuser_type_id=1
、agent はuser_type_id=2
、 farmer はuser_type_id=3
です。
管理者は、エージェントがほとんど権限を持たないすべてを実行する権限を持っています。
問題は、ミドルウェアの使用中に、私の Authenticate.php と AgentAuthenticate.php ミドルウェア ファイルが同じであるかのように動作していることです。つまり、エージェントが管理者のすべての権限を取得しています。論理エラーはありますか?これがコードです。
agentAuthenticate.php (ミドルウェア)
public function handle($request, Closure $next)
{
if ($this->auth->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('auth/login');
}
}
if(! $this->auth->user()->user_type != 2) {
return redirect()->guest('auth/login');
}
return $next($request);
}
Authenticate.php
public function handle($request, Closure $next)
{
if ($this->auth->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('auth/login');
}
}
if(! $this->auth->user()->user_type != 1) {
return redirect()->guest('auth/login');
}
return $next($request);
}
ルート.php
//guest routes
Route::resource('/farmerPoint','farmerPointController',['only' => ['index', 'show']]);
Route::resource('/crop','cropController',['only' => ['index', 'show']]);
//Admin routes
Route::group(['middleware' => 'auth'], function () {
Route::resource('agent','agentController');
Route::resource('farmer','farmerController');
Route::resource('farmer.crop','farmerCropController');
Route::resource('cropType','cropTypeController');
Route::resource('crop','cropController',['except' => ['index','show']]);
Route::resource('farmerPoint','farmerPointController',['except' => ['index','show']]);
Route::get('/AdminPanel',function(){
return view('frontend.AdminPanel');
});
});
//agent routes
Route::group(['middleware' => 'agent'], function () {
Route::resource('farmer','farmerController');
Route::resource('farmer.crop','farmerCropController');
Route::resource('agent','agentController',['only' => ['index','show']]);
Route::get('/AgentPanel',function(){
return view('frontend.AgentPanel');
});
});