Как я могу создать политику / шлюз, чтобы ограничить доступ пользователей к инструментам Nova (например, Spatie Nova Backup Tool)?
У меня была такая же проблема, и я решил ее вот так.
NovaServiceProvider
Добавить калитку / чек в методе tools()
public function tools()
{
if (Auth::user()->hasAnyRole(['admin'])) {
return [new Foo, new Bar];
}
return [];
}
Это решит проблему, но я не уверен, подходит ли это Nova
или нет.
Выполнение этого «Новым способом» будет с использованием метода canSee()
. Вы можете прочитать об этом здесь.
public function tools()
{
return [
YourToolThatMightBeHidden::make()
->canSee(function ($request) {
return $request->user()->can('access-this-tool');
}),
];
}