Как в Laravel использовать «нельзя» в группе Route::middleware?
У меня есть собственные ворота Laravel, определенные "isAdmin" и "isManager". Промежуточное ПО "auth" просто означает, что пользователь вошел в систему. Мои маршруты выглядят следующим образом (значительно упрощено):
Route::middleware(['auth', 'can:isAdmin'])->group(
function () {
Route::get('/', function() { return response("Admin home"); });
}
);
Route::middleware(['auth', 'can:isManager'])->group(
function () {
Route::get('/', function() { return response("Manager home"); });
}
);
Но что мне делать для маршрута для вошедшего в систему пользователя, который не является ни администратором, ни менеджером? Я бы хотел это сделать:
Route::middleware(['auth', 'cannot:isManager', 'cannot:isAdmin'])->group(
function () {
Route::get('/', function() { return response("Who are you, anyway?"); });
}
);
У кого-нибудь есть идеи? Спасибо.
1 ответ
вы можете установить новое правило (гейт) как notAdminAndManager в app/Providers/AuthServiceProvider.php для метода загрузки, вот пример
Gate::define('isNotAdminAndManager', function (User $user) {
return (! in_array($);
});