Включение определенных ролей для доступа к панели инструментов Laravel Nova? - PullRequest
0 голосов
/ 12 сентября 2018

У меня установлен пакет Spatie Permissions, и я создал политики, чтобы ограничить доступ для моих моделей, использующих этот пакет.

Однако я немного борюсь за создание шлюза, чтобы позволить определенным ролям, таким как «Администратор» и «Редактор контента», получить доступ к панели инструментов Nova?

Я предполагаю, что это потребуетфункция gate () в NovaServiceProvider.Вот что я попробовал.

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

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете достичь того, что вы хотите, как это:

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

...