20 lines
760 B
Python
20 lines
760 B
Python
from typing import Any, Awaitable, Callable, Dict, Optional
|
|
|
|
from aiogram import BaseMiddleware
|
|
from aiogram.types import Message
|
|
|
|
from nwxraybot.models import User
|
|
|
|
|
|
class AdminMiddleware(BaseMiddleware):
|
|
def __init__(self) -> None:
|
|
pass
|
|
|
|
async def __call__(self, handler: Callable[[Message, Dict[str, Any]], Awaitable[Any]], event: Message, data: Dict[str, Any]) -> Any:
|
|
user: User = User.select().where(
|
|
User.telegram_id == event.from_user.id).first()
|
|
if user is None or not user.admin:
|
|
await event.reply('Вы не обладаете правами администратора для доступа к данной команде.')
|
|
return None
|
|
return await handler(event, data)
|