Communications Management Commands
manage_chat_permissions
Управление правами участников в чатах.
Примеры использования
Показать участников чата
cd backend
.venv/Scripts/python manage.py manage_chat_permissions --chat-id 62 --list
Назначить администратора
.venv/Scripts/python manage.py manage_chat_permissions \\
--chat-id 62 \\
--user-id 10 \\
--role admin
Назначить модератора с правом закреплять сообщения
.venv/Scripts/python manage.py manage_chat_permissions \\
--chat-id 62 \\
--user-id 10 \\
--role moderator \\
--can-pin-messages
Дать обычному участнику право добавлять новых участников
.venv/Scripts/python manage.py manage_chat_permissions \\
--chat-id 62 \\
--user-id 10 \\
--role member \\
--can-add-members
Дать все персональные права
.venv/Scripts/python manage.py manage_chat_permissions \\
--chat-id 62 \\
--user-id 10 \\
--can-add-members \\
--can-remove-members \\
--can-pin-messages
Удалить права пользователя
.venv/Scripts/python manage.py manage_chat_permissions \\
--chat-id 62 \\
--user-id 10 \\
--remove
Роли
- admin 🔴 - Администратор (полные права на управление чатом)
- moderator 🟠 - Модератор (модерация контента)
- member 🟢 - Участник (обычные права)
- guest ⚪ - Гость (ограниченный доступ)
Персональные права
--can-add-members- Может добавлять участников--can-remove-members- Может удалять участников--can-pin-messages- Может закреплять сообщения
Опции
--chat-id- ID чата (обязательно)--user-id- ID пользователя (обязательно для всех операций кроме --list)--role- Роль: admin, moderator, member, guest--list- Показать список участников--remove- Удалить права (деактивировать membership)
check_chats
Проверка и очистка чатов с некорректными типами.
Примеры использования
Показать статистику чатов по типам
.venv/bin/python manage.py check_chats --stats
Проверить видимость чатов для конкретного пользователя
# Проверяет какие чаты увидит пользователь через API (эмулирует логику ChatViewSet)
.venv/bin/python manage.py check_chats --check-visibility 10
Мигрировать участников из participants в ChatMembership
# КРИТИЧНО: Создает ChatMembership для всех участников из participants
# Без этого чаты не будут видны в API!
.venv/bin/python manage.py check_chats --migrate-memberships
Показать все личные чаты
.venv/bin/python manage.py check_chats --list-type private
Экспортировать личные чаты в JSON файл
# По умолчанию сохранится в chats_export.json
.venv/bin/python manage.py check_chats --export private
# Указать свой путь к файлу
.venv/bin/python manage.py check_chats --export private --output /tmp/private_chats.json
Показать все групповые чаты
.venv/bin/python manage.py check_chats --list-type group
Найти все чаты с некорректными типами
.venv/bin/python manage.py check_chats --find
Проверить конкретный чат
.venv/bin/python manage.py check_chats --check 6
Исправить все чаты с некорректными типами (заменить на group)
.venv/bin/python manage.py check_chats --fix
Исправить с указанием целевого типа
# Заменить все некорректные типы на "channel"
.venv/bin/python manage.py check_chats --fix --target-type channel
Изменить тип конкретного чата
# Изменить тип чата с ID 6 на "group"
.venv/bin/python manage.py check_chats --change-type 6 group
# Изменить тип чата с ID 15 на "channel"
.venv/bin/python manage.py check_chats --change-type 15 channel
Удалить все чаты с некорректными типами (с подтверждением)
.venv/bin/python manage.py check_chats --cleanup
Удалить все чаты с некорректными типами (без подтверждения)
.venv/bin/python manage.py check_chats --cleanup --no-confirm
Удалить конкретный чат
.venv/bin/python manage.py check_chats --delete 6
Допустимые типы чатов
private- Личный диалогgroup- Групповой чатchannel- Каналannouncement- Объявленияglobal- Глобальный чатcomments- Комментарии
Опции
--stats- Показать статистику чатов по типам--check-visibility USER_ID- Проверить видимость чатов для конкретного пользователя (как в API)--migrate-memberships- Создать ChatMembership для всех участников из participants--list-type TYPE- Показать все чаты указанного типа (например: private, group)--export TYPE- Экспортировать чаты указанного типа в JSON файл--output PATH- Путь к файлу для экспорта (по умолчанию: chats_export.json)--find- Найти все чаты с некорректными типами--check CHAT_ID- Проверить конкретный чат по ID--fix- Исправить все чаты с некорректными типами (по умолчанию заменяет на group)--change-type CHAT_ID NEW_TYPE- Изменить тип конкретного чата--target-type TYPE- Целевой тип для опции --fix (по умолчанию: group)--cleanup- Удалить все чаты с некорректными типами--delete CHAT_ID- Удалить конкретный чат по ID--no-confirm- Не запрашивать подтверждение при удалении/изменении
Другие команды
init_reactions.py- Инициализация реакцийverify_chat_migration.py- Проверка миграции чатовpopulate_image_dimensions.py- Заполнение размеров изображенийupdate_department_chat_names.py- Обновление названий чатов отделов