я использую Zizaco / доверьте Пакет laravel в качестве менеджера ACL для моего проекта.
Я знаю, что для ограничения доступа к группе маршрутов через промежуточное ПО и назначения ей роли (или разрешения) я должен сделать это следующим образом:
Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() {
....
});
Но я хочу назначить отдельное разрешение для разных маршрутов (методов) контроллера ресурсов.
Я знаю, что, как можно так, что для всего ресурса, но я не могу реализовать его для каждого метода контроллера:
Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() {
Route::resource('/post', ['middleware' => ['permission:manage-posts'], 'uses' => 'PostController']);
});
Я хочу дать это разрешение связанному методу:
'post-create' => public function create ()
'post-edit' => public function edit()
и так далее.
Вы можете назначить промежуточное ПО в конструкторе вашего контроллера:
class Foo extends Conroller
{
public function __construct() {
$this->middleware('post-create', ['only' => ['create']]);
$this->middleware('post-edit', ['only' => ['edit']]);
}
}
Других решений пока нет …