This commit is contained in:
2026-02-27 20:35:18 +03:00
parent d2d98b63b4
commit 55c3629868
5 changed files with 181 additions and 3 deletions
+25 -3
View File
@@ -2,12 +2,34 @@ from aiogram import Router
from aiogram.filters import CommandStart
from aiogram.types import Message
from aiogram_dialog import DialogManager, StartMode
from dishka import FromDishka
from dutylog.application.bot.user_dialogs.states import MainMenuSG
from dutylog.application.bot.user_dialogs.states import MainMenuSG, AdminMenuSG
from dutylog.infrastructure.database.repositories.users_repository import UsersRepository
from dutylog.infrastructure.utils.config import Config
router = Router()
@router.message(CommandStart())
async def start_handler(message: Message, dialog_manager: DialogManager):
await dialog_manager.start(MainMenuSG.main, mode=StartMode.RESET_STACK)
async def start_handler(
message: Message,
dialog_manager: DialogManager,
users_repository: FromDishka[UsersRepository],
config: FromDishka[Config],
):
assert message.from_user is not None
user = await users_repository.get_or_create_user(
user_id=message.from_user.id,
username=message.from_user.username,
first_name=message.from_user.first_name,
last_name=message.from_user.last_name,
)
is_creator = message.from_user.id == config.bot.creator_id
is_admin = user.is_admin
if is_admin or is_creator:
await dialog_manager.start(AdminMenuSG.main, mode=StartMode.RESET_STACK)
else:
await dialog_manager.start(MainMenuSG.main, mode=StartMode.RESET_STACK)