У меня два типа пользовательских ролей. Админ и менеджер. Администратор может получить доступ ко всем маршрутам, но менеджер может получить доступ только к некоторым из них. Большинство моих маршрутов являются ресурсными. В настоящее время у меня есть эта группа маршрутов для администратора:
Route::middleware(['auth', 'admin'])->prefix('admin')->group(function () {
Route::resource('post','PostController')
}
Вот мое промежуточное ПО 'admin', если вам нужно проверить:
if (!Auth::user()->isAdmin())
{
return redirect('/home');
}
return $next($request);
Здесь все маршруты доступны администратору . Но я хочу разрешить доступ к некоторым маршрутам, например post.index, post.show, post.edit
, для менеджера. Что мне теперь делать?
Ниже я подробно объясняю свой вопрос с помощью примера
У меня есть три промежуточного программного обеспечения, auth, manager, admin
. Как следует из названия, промежуточное ПО auth
проверяет, аутентифицирован ли пользователь, manager
промежуточное ПО проверяет, является ли пользователь менеджером, и, конечно же, промежуточное ПО admin
проверяет, является ли пользователь администратором. Теперь для маршрута Route::resource('post','PostController')
auth
имеет доступ к post.index, post.view
manager
имеет доступ к post.index, post.view, post.edit
admin
имеет доступ ко всем маршрутам. Как лучше всего применить промежуточное ПО для решения проблемы?