Исправление обработки прав администратора

Изменение сообщений о банах
This commit is contained in:
2025-10-18 13:21:47 +03:00
parent 295866ed2d
commit 383abb0235
3 changed files with 25 additions and 33 deletions

View File

@@ -131,12 +131,15 @@ async def apply_mute(bot: AsyncTeleBot, message: Message, user_id: int, duration
message_thread_id=message.message_thread_id,
)
# Формируем причину с полным текстом сообщения
reason_text = f"{words_info} (нарушение #{violations_count})\n\n📝 <b>Текст сообщения:</b>\n<code>{message.text}</code>"
# Отправляем сообщение-лог в админ-чат
await action_reporter.log_action(
action="АВТОМУТ",
user_id=user_id,
admin_id=None, # Автоматическое действие
reason=f"{words_info} (нарушение #{violations_count})",
reason=reason_text,
duration=time_display,
)

View File

@@ -22,8 +22,8 @@ def register_handlers(bot: AsyncTeleBot):
logger.info(f"Команда /badwords получена от пользователя {message.from_user.id}")
# Проверяем права администратора
admin_check = await check_admin_status(bot, message)
# Проверяем права администратора (без проверки прав на ограничение участников)
admin_check = await check_admin_status(bot, message, check_restrict_rights=False)
if admin_check == 1:
logger.info(f"Пользователь {message.from_user.id} не является администратором")
return

View File

@@ -4,16 +4,13 @@ import asyncio
import logging
import os
from utils import delete_messages
from utils import delete_messages, check_admin_status
from config import COMMAND_MESSAGES, DATABASE_NAME, LOG_FILE_NAME
# Получаем логгер для текущего модуля
logger = logging.getLogger(__name__)
# Загружаем id администраторов из .env
ADMIN_IDS = [int(id_str.strip()) for id_str in os.getenv('ADMIN_IDS').split(',')]
# Регистрирует все обработчики команд
def register_handlers(bot: AsyncTeleBot):
@@ -23,8 +20,13 @@ def register_handlers(bot: AsyncTeleBot):
try:
# Если id администратора совпадает
if message.from_user.id in ADMIN_IDS:
# Проверяем права администратора (без проверки прав на ограничение участников)
admin_check = await check_admin_status(bot, message, check_restrict_rights=False)
if admin_check == 1:
logger.info(f"Пользователь {message.from_user.id} не является администратором")
return
# Если проверка пройдена
# Отправляем базу данных
await bot.send_document(
@@ -41,19 +43,6 @@ def register_handlers(bot: AsyncTeleBot):
# Записываем действие в логи
logger.info(f"Администратор {message.from_user.id} запустил /botdata.")
# Если id администратора не совпадает
else:
# Отправляем предупреждение
await bot.send_message(
chat_id=message.chat.id,
text=COMMAND_MESSAGES['no_admin_rights'],
message_thread_id=message.message_thread_id,
)
# Записываем действие в логи
logger.info(f"Пользователь {message.from_user.id} запустил /botdata.")
except Exception as e:
# Отправляем ошибку