启用某些角色以访问Laravel Nova仪表板?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了启用某些角色以访问Laravel Nova仪表板?相关的知识,希望对你有一定的参考价值。

我安装了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 Nova仪表板?的主要内容,如果未能解决你的问题,请参考以下文章

处理访问仪表板与laravel和委托

Laravel Nova 多态多对多关系不起作用

Laravel Nova 只能从特定守卫访问

php 具有自定义访问器的Laravel Nova用户资源

将 Laravel Nova 移至子域

根据用户的角色和状态登录laravel