File size: 515 Bytes
970583e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
from aiogram.filters import BaseFilter
from aiogram.types import Message
from sqlalchemy.ext.asyncio import AsyncSession
from bot.services.users import is_admin
class AdminFilter(BaseFilter):
"""Allows only administrators (whose database column is_admin=True)."""
async def __call__(self, message: Message, session: AsyncSession) -> bool:
if not message.from_user:
return False
user_id = message.from_user.id
return await is_admin(session=session, user_id=user_id)
|