19 lines
656 B
Python
19 lines
656 B
Python
from aiogram.filters import BaseFilter
|
|
from aiogram.types import Message, CallbackQuery
|
|
from sqlalchemy import select
|
|
from database.models import Admin
|
|
|
|
from database.db import async_session_maker
|
|
|
|
class IsAdminFilter(BaseFilter):
|
|
async def __call__(self, event: Message | CallbackQuery) -> bool:
|
|
try:
|
|
async with async_session_maker() as session:
|
|
result = await session.execute(
|
|
select(Admin).where(Admin.tg_id == event.from_user.id)
|
|
)
|
|
admin = result.scalar_one_or_none()
|
|
return admin is not None
|
|
except Exception:
|
|
return False
|