Как создать Laravel Nova Gate / Политику, чтобы ограничить доступ к инструментам Nova? - PullRequest
0 голосов
/ 09 сентября 2018

Как мне создать политику / шлюз, чтобы запретить пользователям доступ к инструментам Nova (например, Spatie Nova Backup Tool)?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Делая это "Новым путем", вы будете использовать canSee() -метод.Вы можете прочитать об этом здесь .

public function tools()
{
    return [
        YourToolThatMightBeHidden::make()
            ->canSee(function ($request) {
                return $request->user()->can('access-this-tool');
            }),
    ];
}
0 голосов
/ 16 ноября 2018

У меня была такая же проблема, и я решил ее следующим образом.

  1. Перейти к NovaServiceProvider
  2. Добавить гейт / чек в методе tools()

    public function tools()
    
    {
    
        if (Auth::user()->hasAnyRole(['admin'])) {
            return [new Foo, new Bar];
        }
    
        return [];
    }
    

Это решит проблему, но я не уверен, является ли это Nova способом сделать это или нет.

...