Сбор permactions
Команда collect_perms находит классы, унаследованные от BasePermAction, собирает их декларации прав и синхронизирует результат с локальной базой и, при необходимости, с внешним Auth-сервисом.
Команда
uv run manage.py collect_perms
Команду запускают после добавления или изменения permactions, когда набор разрешений сервиса нужно пересобрать и сохранить.
По умолчанию: Команда пересобирает и синхронизирует весь доступный набор permactions.
Примечание: Команда не принимает дополнительных параметров.
Как работает
- Находит все директории
actions, которые должны участвовать в сборке permactions. - Импортирует найденные модули и выбирает классы, которые напрямую наследуются от
BasePermAction. - Для каждого такого класса вызывает сборку полной декларации permaction и добавляет к ней
SERVICE_UUIDтекущего сервиса. - Удаляет устаревшие записи из
default_permaction,group_permactionиactor_permaction, затем либо сохраняет новые права локально, либо отправляет их в Auth и после этого обновляет локальную таблицу.
Что важно учесть
- Без
SERVICE_UUIDкоманда не сможет сформировать итоговые записи и завершится ошибкой. - Если сервис работает не как Auth, для полной синхронизации понадобятся
SERVICE_PRIVATE_KEYи доступный Auth-сервис с корректным доменом из базы или настроек. - Команда обходит найденные каталоги
actionsи собирает права из доступных модулей с permactions. - Ошибки импорта в найденных модулях напрямую влияют на выполнение команды, потому что модуль загружается динамически.