Пример фильтра как класс на проверку прав доступа.
В данном случае, id внесены просто в словарь.
from aiogram.filters import BaseFilter
admin_ids = [123, 456]
class IsAdmin(BaseFilter):
def __init__(self, admin_ids) -> None:
self.admin_ids = admin_ids
async def __call__(self, message: Message) -> bool:
return message.from_user.id in self.admin_ids
Пример хендлера с использованием фильтра:
@router.message(IsAdmin(admin_ids), F.text == "admin")
async def admin_handler(message: Message) -> None:
kb_admin = [
[types.KeyboardButton(text="Статистика")],
[types.KeyboardButton(text="Выход")],
[types.KeyboardButton(text="Настройки")],
]
keyboard_admin = types.ReplyKeyboardMarkup(
keyboard=kb_admin,
resize_keyboard=True
)
await message.answer("Меню администратора", reply_markup=keyboard_admin)