Сбор permactions

Команда collect_perms находит классы, унаследованные от BasePermAction, собирает их декларации прав и синхронизирует результат с локальной базой и, при необходимости, с внешним Auth-сервисом.

Команда

uv run manage.py collect_perms

Команду запускают после добавления или изменения permactions, когда набор разрешений сервиса нужно пересобрать и сохранить.

По умолчанию: Команда пересобирает и синхронизирует весь доступный набор permactions.

Примечание: Команда не принимает дополнительных параметров.

Как работает

  1. Находит все директории actions, которые должны участвовать в сборке permactions.
  2. Импортирует найденные модули и выбирает классы, которые напрямую наследуются от BasePermAction.
  3. Для каждого такого класса вызывает сборку полной декларации permaction и добавляет к ней SERVICE_UUID текущего сервиса.
  4. Удаляет устаревшие записи из default_permaction, group_permaction и actor_permaction, затем либо сохраняет новые права локально, либо отправляет их в Auth и после этого обновляет локальную таблицу.

Что важно учесть

  • Без SERVICE_UUID команда не сможет сформировать итоговые записи и завершится ошибкой.
  • Если сервис работает не как Auth, для полной синхронизации понадобятся SERVICE_PRIVATE_KEY и доступный Auth-сервис с корректным доменом из базы или настроек.
  • Команда обходит найденные каталоги actions и собирает права из доступных модулей с permactions.
  • Ошибки импорта в найденных модулях напрямую влияют на выполнение команды, потому что модуль загружается динамически.