Symfony 4 Voter - можно ли использовать с динамическими разрешениями?
Мне нужно реализовать систему разрешений пользователей для моего приложения Symfony 4. Все разрешения и возможные вызовы методов хранятся в отдельной таблице базы данных, а также имеется таблица перекрестных ссылок, которая решает, какие операции CRUD могут выполняться каждым пользователем. Пока я бы пошел с системой голосования от Symfony, однако я не уверен, смогу ли я создать глобального избирателя, который просто принимает атрибут (скажем, "ИЗМЕНИТЬ") для данного вызова метода, переданного в класс избирателя как субъект? Я хотел бы сделать что-то вроде следующих моих классов контроллеров:
$this->denyAccessUnlessGranted('CREATE', 'METHOD_A');
В документации Symfony есть совет создавать по одному избирателю на каждую сущность. Но из-за текущей архитектуры моего приложения (поддержка внешних плагинов, другие разработчики могут расширять его и т. Д.) Я не могу предсказать, какие объекты могут быть установлены в будущем, поэтому я не могу создавать голоса для неизвестных объектов.
Итак, я хотел бы знать, можно ли использовать глобального избирателя для обработки этих проверок разрешений?