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_WITH_AD,
|
||||
INSTRUCT_TRUECONF_PENDING_TEXT,
|
||||
INSTRUCT_EMAIL_TEXT,
|
||||
INSTRUCT_EMAIL_AVAILABLE,
|
||||
INSTRUCT_EMAIL_UNAVAILABLE,
|
||||
INSTRUCT_ERROR_MSG,
|
||||
)
|
||||
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")
|
||||
elif cmd == "2":
|
||||
log_menu_stats(user_id, "Инструкции", "Почта")
|
||||
set_state(user_id, "INSTRUCT_EMAIL_VIEW")
|
||||
await msg.answer(INSTRUCT_EMAIL_TEXT, parse_mode="html")
|
||||
cn = get_user_cn(user_id)
|
||||
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:
|
||||
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>"
|
||||
)
|
||||
|
||||
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 (
|
||||
"📧 <b>Инструкция по почте на мобильном устройстве</b>\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_PENDING_TEXT = _instruct_trueconf_pending
|
||||
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)
|
||||
Reference in New Issue
Block a user