我已经安装了Spatie Permissions软件包,并且已经创建了策略来限制使用此软件包对我的模型的访问。
但是,我在创建门以使某些角色(例如“管理员”和“内容编辑器”)能够访问Nova仪表板时费劲吗?
我认为它将涉及NovaServiceProvider中的gate()函数。这是我尝试过的。
protected function gate()
{
Gate::define('viewNova', function ($user) {
if ($user->hasRole('Admin') || $user->hasRole('Content Editor'))
{
return true;
}
});
}
答案 0 :(得分:3)
您可以这样实现自己的目标:
/**
* Register the Nova gate.
*
* This gate determines who can access Nova in non-local environments.
*
* @return void
*/
protected function gate()
{
Gate::define('viewNova', function ($user) {
return $user->hasAnyRole(['Admin', 'Content Editor']);
});
}
有关授权访问Nova的文档的更多信息:https://nova.laravel.com/docs/1.0/installation.html#authorizing-nova