Symfony 4 Voter - используется с динамическими разрешениями? - PullRequest
0 голосов
/ 10 октября 2019

Мне нужно внедрить систему разрешений пользователей для моего приложения Symfony 4. Все разрешения и возможные вызовы методов хранятся в отдельной таблице базы данных, а также имеется таблица перекрестных ссылок, которая решает, какая из операций CRUD может быть выполнена каждым пользователем. Пока что я бы пошел с системой избирателей из Symfony, однако я не уверен, смогу ли я создать global избирателя, который просто принимает атрибут (скажем, «EDIT») для данного вызова метода, переданного вкласс избирателей как субъект? Я хотел бы сделать что-то вроде следующих моих классов контроллеров:

$this->denyAccessUnlessGranted('CREATE', 'METHOD_A');

В документации Symfony есть совет по созданию одного избирателя для каждой сущности. Но из-за текущей архитектуры моего приложения (поддержка внешних плагинов, другие разработчики могут расширять ее и т. Д.), Я не могу предсказать, какие объекты могут быть установлены в будущем, поэтому я не могу создавать избирателей для неизвестных объектов.

Так что яхотели бы знать, возможно ли использовать глобального избирателя для обработки этих проверок разрешений?

...