Admin check

This commit is contained in:
2023-11-04 05:32:00 +03:00
parent 29743114dd
commit 3a7e80adcb

View File

@@ -4,9 +4,8 @@ from aiogram import BaseMiddleware
from aiogram.types import Message from aiogram.types import Message
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from db.data import User, engine from db.data import Admin, User, engine
ADMIN_LIST = [248770879, 395543883]
class AdminMiddleware(BaseMiddleware): class AdminMiddleware(BaseMiddleware):
def __init__(self) -> None: def __init__(self) -> None:
@@ -14,11 +13,12 @@ class AdminMiddleware(BaseMiddleware):
async def __call__(self, handler: Callable[[Message, Dict[str, Any]], Awaitable[Any]], event: Message, data: Dict[str, Any]) -> Any: async def __call__(self, handler: Callable[[Message, Dict[str, Any]], Awaitable[Any]], event: Message, data: Dict[str, Any]) -> Any:
with Session(engine) as session: with Session(engine) as session:
if not session.get(User, event.from_user.id): if not session.get(User, event.from_user.id):
user = User(id=event.from_user.id, user_name=event.from_user.username) user = User(id=event.from_user.id, user_name=event.from_user.username)
session.add(user) session.add(user)
session.commit() session.commit()
if event.from_user.id not in ADMIN_LIST: isAdmin = session.get(Admin, event.from_user.id)
if not isAdmin:
await event.answer('Команда только для админов!') await event.answer('Команда только для админов!')
return None return None
return await handler(event, data) return await handler(event, data)