feat: email instruction checks AD mail attribute and shows available/unavailable message
This commit is contained in:
+12
-3
@@ -18,7 +18,8 @@ from utils.texts import (
|
|||||||
INSTRUCT_TRUECONF_TEXT,
|
INSTRUCT_TRUECONF_TEXT,
|
||||||
INSTRUCT_TRUECONF_WITH_AD,
|
INSTRUCT_TRUECONF_WITH_AD,
|
||||||
INSTRUCT_TRUECONF_PENDING_TEXT,
|
INSTRUCT_TRUECONF_PENDING_TEXT,
|
||||||
INSTRUCT_EMAIL_TEXT,
|
INSTRUCT_EMAIL_AVAILABLE,
|
||||||
|
INSTRUCT_EMAIL_UNAVAILABLE,
|
||||||
INSTRUCT_ERROR_MSG,
|
INSTRUCT_ERROR_MSG,
|
||||||
)
|
)
|
||||||
from utils.states import get_state, set_state, clear_state
|
from utils.states import get_state, set_state, clear_state
|
||||||
@@ -427,8 +428,16 @@ async def instruct_router_handler(msg: Message):
|
|||||||
await msg.answer(text, parse_mode="html")
|
await msg.answer(text, parse_mode="html")
|
||||||
elif cmd == "2":
|
elif cmd == "2":
|
||||||
log_menu_stats(user_id, "Инструкции", "Почта")
|
log_menu_stats(user_id, "Инструкции", "Почта")
|
||||||
set_state(user_id, "INSTRUCT_EMAIL_VIEW")
|
cn = get_user_cn(user_id)
|
||||||
await msg.answer(INSTRUCT_EMAIL_TEXT, parse_mode="html")
|
if cn is None:
|
||||||
|
cn = user_id
|
||||||
|
ad_info = get_ad_user_info(user_id)
|
||||||
|
mail = ad_info.get("mail") if ad_info else None
|
||||||
|
if mail:
|
||||||
|
text = INSTRUCT_EMAIL_AVAILABLE(EMOJI_DIGITS, cn, mail)
|
||||||
|
else:
|
||||||
|
text = INSTRUCT_EMAIL_UNAVAILABLE(EMOJI_DIGITS, cn)
|
||||||
|
await msg.answer(text, parse_mode="html")
|
||||||
else:
|
else:
|
||||||
await msg.answer(UNKNOWN_MAIN_CMD_TEXT, parse_mode="html")
|
await msg.answer(UNKNOWN_MAIN_CMD_TEXT, parse_mode="html")
|
||||||
|
|
||||||
|
|||||||
+19
-2
@@ -624,7 +624,23 @@ def _instruct_trueconf_with_ad(emojis: dict, cn: str, ticket_id: str = None) ->
|
|||||||
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
||||||
)
|
)
|
||||||
|
|
||||||
def _instruct_email(emojis: dict) -> str:
|
|
||||||
|
def _instruct_email_available(emojis: dict, cn: str, mail: str) -> str:
|
||||||
|
"""Текст когда почта доступна."""
|
||||||
|
return (
|
||||||
|
f"📧 <b>Почта доступна, {cn}</b>\n\n"
|
||||||
|
f"Ваш email в Active Directory: <code>{mail}</code>\n\n"
|
||||||
|
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
||||||
|
)
|
||||||
|
|
||||||
|
def _instruct_email_unavailable(emojis: dict, cn: str) -> str:
|
||||||
|
"""Текст когда почта недоступна."""
|
||||||
|
return (
|
||||||
|
f"⚠️ <b>Почта недоступна, {cn}</b>\n\n"
|
||||||
|
"У вас нет почтового адреса в Active Directory.\n\n"
|
||||||
|
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
||||||
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
"📧 <b>Инструкция по почте на мобильном устройстве</b>\n\n"
|
"📧 <b>Инструкция по почте на мобильном устройстве</b>\n\n"
|
||||||
"Данная функция находится в разработке.\n\n"
|
"Данная функция находится в разработке.\n\n"
|
||||||
@@ -638,7 +654,8 @@ INSTRUCT_TRUECONF_TEXT = _instruct_trueconf(EMOJI_DIGITS)
|
|||||||
INSTRUCT_TRUECONF_WITH_AD = _instruct_trueconf_with_ad
|
INSTRUCT_TRUECONF_WITH_AD = _instruct_trueconf_with_ad
|
||||||
INSTRUCT_TRUECONF_PENDING_TEXT = _instruct_trueconf_pending
|
INSTRUCT_TRUECONF_PENDING_TEXT = _instruct_trueconf_pending
|
||||||
INSTRUCT_TRUECONF_NO_TICKET_TEXT = _instruct_trueconf_no_ticket
|
INSTRUCT_TRUECONF_NO_TICKET_TEXT = _instruct_trueconf_no_ticket
|
||||||
INSTRUCT_EMAIL_TEXT = _instruct_email(EMOJI_DIGITS)
|
INSTRUCT_EMAIL_AVAILABLE = _instruct_email_available
|
||||||
|
INSTRUCT_EMAIL_UNAVAILABLE = _instruct_email_unavailable
|
||||||
|
|
||||||
# Единая стандартная заглушка системной ошибки для модуля инструкций
|
# Единая стандартная заглушка системной ошибки для модуля инструкций
|
||||||
INSTRUCT_ERROR_MSG = system_error_text(EMOJI_DIGITS, show_back=True)
|
INSTRUCT_ERROR_MSG = system_error_text(EMOJI_DIGITS, show_back=True)
|
||||||
Reference in New Issue
Block a user