forked from FOSS/ASF-Control-Bot
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
from aiogram.filters import BaseFilter
|
|
from aiogram.types import CallbackQuery, Message
|
|
|
|
from bot.config import ADMIN_ID
|
|
from bot.logging_utils import get_logger
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
|
|
class AdminFilter(BaseFilter):
|
|
async def __call__(self, message: Message) -> bool:
|
|
allowed = message.from_user.id == ADMIN_ID
|
|
|
|
if not allowed:
|
|
logger.warning(
|
|
"Отклонено сообщение от неавторизованного пользователя: user_id=%s",
|
|
message.from_user.id if message.from_user else None,
|
|
)
|
|
|
|
return allowed
|
|
|
|
|
|
class AdminCallbackFilter(BaseFilter):
|
|
async def __call__(self, callback: CallbackQuery) -> bool:
|
|
allowed = callback.from_user.id == ADMIN_ID
|
|
|
|
if not allowed:
|
|
logger.warning(
|
|
"Отклонен callback от неавторизованного пользователя: user_id=%s data=%s",
|
|
callback.from_user.id,
|
|
callback.data,
|
|
)
|
|
|
|
return allowed
|