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 - Обновление названий чатов отделов