如何创建 Laravel Nova Gate/Policy 来限制对 Nova 工具的访问?
How to create a Laravel Nova Gate/Policy to restrict access to Nova tools?
如何创建 policy/gate 来限制用户访问 Nova 工具(例如 Spatie Nova Backup Tool)?
我遇到了同样的问题,我是这样解决的。
- 转到
NovaServiceProvider
在tools()
方法中添加一个gate/check
public function tools()
{
if (Auth::user()->hasAnyRole(['admin'])) {
return [new Foo, new Bar];
}
return [];
}
这将解决问题,但我不确定这是否是 Nova
的解决方法。
"Nova way" 执行此操作将使用 canSee()
方法。你可以阅读它 here.
public function tools()
{
return [
YourToolThatMightBeHidden::make()
->canSee(function ($request) {
return $request->user()->can('access-this-tool');
}),
];
}
如何创建 policy/gate 来限制用户访问 Nova 工具(例如 Spatie Nova Backup Tool)?
我遇到了同样的问题,我是这样解决的。
- 转到
NovaServiceProvider
在
tools()
方法中添加一个gate/checkpublic function tools() { if (Auth::user()->hasAnyRole(['admin'])) { return [new Foo, new Bar]; } return []; }
这将解决问题,但我不确定这是否是 Nova
的解决方法。
"Nova way" 执行此操作将使用 canSee()
方法。你可以阅读它 here.
public function tools()
{
return [
YourToolThatMightBeHidden::make()
->canSee(function ($request) {
return $request->user()->can('access-this-tool');
}),
];
}