#!/usr/bin/env python3 """Декораторы для бота.""" import logging from functools import wraps from telegram import Update from telegram.ext import ContextTypes logger = logging.getLogger(__name__) def check_access(func): """Декоратор для проверки прав доступа пользователя.""" @wraps(func) async def wrapper(update: Update, context: ContextTypes.DEFAULT_TYPE, *args, **kwargs): user_id = update.effective_user.id # Если доступ не ограничен — пропускаем всех if not config.is_access_restricted: return await func(update, context, *args, **kwargs) if user_id not in config.allowed_users: logger.warning(f"Попытка доступа от запрещённого пользователя {user_id}") await update.message.reply_text( "❌ *Доступ запрещён*\n\n" "Ваш ID не добавлен в список разрешённых пользователей.\n" f"Ваш ID: `{user_id}`", parse_mode="Markdown" ) return return await func(update, context, *args, **kwargs) return wrapper