fix: separate ticket check from creation in Trueconf flow

This commit is contained in:
Денис Кривоченко
2026-07-27 23:43:15 +07:00
parent 9b65ec1e7e
commit 9a24f48259
+5 -10
View File
@@ -205,7 +205,6 @@ async def _find_existing_trueconf_ticket(requester_email: str) -> str | None:
async def create_sd_ticket_for_trueconf(user_id: str, cn: str) -> str | None:
"""
Создать заявку в Service Desk для запроса доступа к Trueconf.
Если уже есть открытая заявка — возвращает её ID.
"""
subject = "Запрос доступа к Trueconf"
@@ -214,12 +213,6 @@ async def create_sd_ticket_for_trueconf(user_id: str, cn: str) -> str | None:
requester_email = ad_info.get("mail") or DEFAULT_REQUESTER
city = ad_info.get("city", "Кемерово") if ad_info else "Кемерово"
# Сначала ищем существующую открытую заявку
existing_ticket = await _find_existing_trueconf_ticket(requester_email)
if existing_ticket:
logger.info(f"Returning existing ticket #{existing_ticket} for {cn}")
return existing_ticket
description = (
f"Пользователь {cn} ({user_id}) запросил инструкцию по Trueconf, "
f"но не имеет группы 2FA. Требуется выдача доступа."
@@ -300,11 +293,13 @@ async def instruct_router_handler(msg: Message):
await msg.answer(text, parse_mode="html")
else:
# Нет доступа — проверяем, есть ли уже открытая заявка
ticket_id = await create_sd_ticket_for_trueconf(user_id, cn)
if ticket_id:
ad_info = get_ad_user_info(user_id)
requester_email = ad_info.get("mail") or DEFAULT_REQUESTER
existing_ticket = await _find_existing_trueconf_ticket(requester_email)
if existing_ticket:
# Заявка уже существует — показываем информацию
set_state(user_id, "INSTRUCT_TRUECONF_VIEW")
text = INSTRUCT_TRUECONF_WITH_AD(EMOJI_DIGITS, cn, ticket_id)
text = INSTRUCT_TRUECONF_WITH_AD(EMOJI_DIGITS, cn, existing_ticket)
await msg.answer(text, parse_mode="html")
else:
# Заявки нет — показываем промпт с запросом