За последние 24 часа нас посетили 22047 программистов и 1126 роботов. Сейчас ищут 769 программистов ...

Laravel Gate define и denies

Тема в разделе "Laravel", создана пользователем Foks28, 8 апр 2019.

Метки:
  1. Foks28

    Foks28 Новичок

    С нами с:
    8 апр 2019
    Сообщения:
    1
    Симпатии:
    0
    Добрый день! Весь день сегодня ищу ошибку в своем коде. Дело в чем: есть таблицы с правами доступа многие ко многим. Хочу реализовать несколько видов пользователей.
    Когда дело дошло до админ панели, то вычитав из документации стал использовать gate. Сначала прописал в файле AuthServiceProvider.php

    PHP:
    1. protected $policies = [
    2.          'Corp\Model' => 'Corp\Policies\ModelPolicy',
    3.     ];
    4.  
    5.     /**
    6.      * Register any authentication / authorization services.
    7.      *
    8.      * @return void
    9.      */
    10.     public function boot()
    11.     {
    12.         $this->registerPolicies();
    13.         Gate::define('VIEW_ADMIN', function(){
    14.             return false;
    15.         });
    16.  
    17.         //
    18.     }
    Далее в контроллере следующий код:

    PHP:
    1. public function __construct(){
    2.         parent::__construct();
    3.  
    4.         dd(Gate::denies('VIEW_ADMIN'));
    5.         if(Gate::denies('VIEW_ADMIN')){
    6.             abort(403);
    7.         }
    8.  
    9.         $this->template = env('THEME').'.admin.index';
    10.  
    11.     }
    Весь день рылся на форумах и в документации, но так и не понял в чем проблема. Мне всегда

    PHP:
    1. Gate::denies('VIEW_ADMIN')
    возвращает TRUE, независимо, что я там пропишу. Что я делаю неправильно? Подскажите пожалуйста.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Ответил на форуме Laravel.ru