авторизация в laravel 7 с воротами - PullRequest
0 голосов
/ 28 апреля 2020

привет Я хочу использовать авторизацию в моем проекте с gate. Я определяю гейт в провайдере \AuthServiceProvider:

public function boot()
{
    $this->registerPolicies();

    foreach ($this->getPermissions() as $permission) {
        Gate::define($permission->name , function ($user) use($permission){
            return $user->hasRole($permission->roles);
        });
    }

}

, после чего я определяю функцию hasRole в App\User:

 public function hasRole($role)
{
    if(is_string($role)) {
        return $this->roles->contains('name' , $role);
    }

    return !! $role->intersect($this->roles)->count();
}

например в ProductController Я определяю индекс такой это:

public function index()
{
    $this->authorize('show-product');
    $products = Product::latest()->paginate(20);
    return view('Admin.product.all' , compact('products'));
}

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

...