Как получить доступ к админ-панели nova только суперадминистратору?

#php #laravel

Вопрос:

Как я могу сделать доступ к панели администратора новым только для пользователей с ролью суперадминистратора? Я добавил в NovaServiceProvider -> ворота не помогли

  protected function gate()
    {
        Gate::define('viewNova', function ($user) {
            /** @var AppModelsUser $user */
            return $user->hasRole('super-admin');
        });
    }
 

Ответ №1:

вы можете использовать NovaServiceProvider для определения своих собственных ворот:

в /app/Providers/NovaServiceProvider.php

 protected function gate()
    {
        Gate::define('viewNova', function ($user) {
            if( !user->hasRole('super-admin') ){ 
                abort(403);
            }
            return true;
        });
    }
 

Комментарии:

1. Такое чувство, что nova игнорирует мой метод, независимо от того, какое условие я пишу

2. @РомаЛытарь «Эти ворота определяют, кто может получить доступ к Nova в нелокальных средах».