Update Middleware

This commit is contained in:
Zakhar Izmaylov
2024-11-17 23:42:09 +03:00
parent 6b2914bff4
commit 7e2f56f20b
8 changed files with 149 additions and 97 deletions
+13 -14
View File
@@ -1,4 +1,4 @@
from typing import Any, Awaitable, Callable, Dict
from typing import Any, Awaitable, Callable, Dict,Union
from aiogram import BaseMiddleware
from aiogram.types import TelegramObject
@@ -14,17 +14,16 @@ class AdminMiddleware(BaseMiddleware):
event: TelegramObject,
data: Dict[str, Any],
) -> Any:
data["admin"] = False
try:
if isinstance(ADMIN_ID, list):
if event.from_user.id in ADMIN_ID:
data["admin"] = True
elif isinstance(ADMIN_ID, int):
if event.from_user.id == ADMIN_ID:
data["admin"] = True
else:
data["admin"] = False
except Exception as e:
logger.error(e)
data["admin"] = False
data["admin"] = self._check_admin_access(event)
return await handler(event, data)
def _check_admin_access(self, event: TelegramObject) -> bool:
try:
admin_ids: Union[int, list[int]] = ADMIN_ID
if isinstance(admin_ids, list):
return event.from_user.id in admin_ids
return event.from_user.id == admin_ids
except Exception as e:
logger.error(f"Ошибка проверки администратора: {e}")
return False