我已经安装了Spatie Permissions程序包,并且已经创建了策略来限制使用该程序包对我的模型的访问。

但是,我在创建门以使某些角色(例如“管理员”和“内容编辑器”)能够访问Nova仪表板方面有些挣扎。

我假设它将涉及NovaServiceProvider中的gate()函数。这是我尝试过的。

   protected function gate()
    {
        Gate::define('viewNova', function ($user) {
             if ($user->hasRole('Admin') || $user->hasRole('Content Editor'))
    {
        return true;
    }
       });
    }

最佳答案

您可以像这样实现您想要的:

/**
 * 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

关于laravel - 是否启用某些角色来访问Laravel Nova仪表板?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52284426/

10-12 22:25