fix: separate ticket check from creation in Trueconf flow
This commit is contained in:
+5
-10
@@ -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:
|
||||
# Заявки нет — показываем промпт с запросом
|
||||
|
||||
Reference in New Issue
Block a user