@adam_carraway

Как настроить автоматические policy?

Я регистрирую policy.
protected $policies = [
        Role::class => RolePolicy::class,
        User::class => UserPolicy::class,
        ReferralRule::class => ReferralRulePolicy::class
    ];

Файлы имеют такое местоположение
use App\Models\ReferralRule;
use Packages\Admin\Models\User;
use Packages\Admin\Policies\ReferralRulePolicy;
use Packages\Admin\Policies\RolePolicy;
use Packages\Admin\Policies\UserPolicy;

Но автоматически не работают policy. нужно прописывать в каждом методе контроллера
$this->authorize('my permission', Model::class);
чтобы они работали. Думаю что это из-за того что мои модели и policy имеют такие namespace. Почитал что можно переопределить автоматический поиск policy для модели, но я не совсем понял как это сделать для моего случая. прошу помощи
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
@jazzus
Нет такого функционала. в провайдере прописывается простая привязка модели к политике. К методам контроллера это отношения не имеет. Это чтобы Ларавел знал какую политику дергать когда ты передаешь модель аргументом. Единственный способ не прописывать везде хелпер authorize, это указать подключение в конструкторе ресурсного контроллера
public function __construct()
{
    $this->authorizeResource(Article::class, 'article');
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы