вложенный сложный ACL в laravel - PullRequest
0 голосов
/ 23 сентября 2019

Я использую разрешение spatie / laravel в качестве системы ACL в моем проекте.это хорошо.Я добавляю платеж / учет / счет-фактуру в свой проект, и на этом уровне есть еще один ACL, необходимый для работы пользователей.

, например, пользователь A имеет функцию F1 в качестве нашего сервиса.до 1 месяца он / она может использовать все разделы в Ф1.после этого некоторые функции в F1 ограничены, пока новый счет не будет оплачен пользователем.

, поэтому в моем контроллере метод Edit я использую authorizeForUser только на уровне ACL пользователя.Теперь я должен добавить еще один ACL в F-модель, как authorizeForF (F1-> id) ?!и еще одна проблема заключается в том, что это очень сложно, и если я забыл добавить это, я пропустил немного денег!

1 Ответ

0 голосов
/ 24 сентября 2019

У меня есть решение:

seed в таблице, сохранить все Uri, методы (с foreach на Route::getRoutes()) как уникальную строку и назначить оценку для каждого из них (по умолчанию 0).в route middllware проанализируйте каждый запрос uri и сравните его с оценкой. (например, для этого uri является / profile / advaence и администратор назначает оценку 2)

, если учетная запись uri имеет больше нуля, бухгалтер пользователябудет проверено, чтобы продолжить или перенаправить на оплату, если это необходимо.

это дает администратору веб-сайта возможность назначать каждый счет URI, и разработчик не несет за это ответственности.

, просто я беспокоюсь об этом,потому что администраторы обычно не понимают их легко.Итак, мне нужно другое семя для некоторого URI, чтобы объяснить в качестве заголовка.

это хорошо?

...