Привет, я работаю над проектом laravel, я должен проверить разрешение пользователя, когда он пытается получить доступ к одной странице, моя проблема в том, что я создал промежуточное ПО Permission и добавил его в ядро. php, оно проверяя про разрешения для всего маршрута, даже я не назвал его ни в каком маршруте. Я не хочу применять это промежуточное ПО на всех маршрутах, только на некоторых. это код моего промежуточного программного обеспечения
namespace App\Http\Middleware;
use Closure;
use Session;
use App\Rules;
use Illuminate\Support\Facades\Route;
use URL;
class Permissions
{
public function handle($request, Closure $next) {
$rolename=Session::get('rule_name') ;
$route = $request->path();
$hasPermission = Rules::where('rule_name', 'superadmin')->where('allowed_pages', 'like', '%' . $route . '%') ->first();
if (empty($hasPermission)) {
echo 'Unauthorized.<a href="' . URL::to('/admin') . '">Go Back</a>';
die();
}
}
}
}
, и это мой маршрутный файл
Route::resource('Login', 'LoginController')->name('index','Login');
Route::resource('Backup', 'BackupController')->name('index','Backup');
, как вы видите, я не применял промежуточное ПО на этих маршрутах буксировки, но промежуточное ПО работает с эти маршруты буксировки это мой код ядра
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,
'Permissions' => \App\Http\Middleware\Permissions::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
];
Я хочу запускать это промежуточное ПО только по маршруту, подобному этому
Route::group(['middleware' => 'permissions'], function () {
Route::resource('Backup', 'BackupController')->name('index','Backup');
}
спасибо за предварительные пожелания