add AD 2FA group check to instruct Trueconf module

This commit is contained in:
Денис Кривоченко
2026-07-21 23:47:35 +07:00
parent be12045fa8
commit 8fa42206aa
3 changed files with 149 additions and 2 deletions
+43 -1
View File
@@ -586,14 +586,55 @@ def _instruct_main_menu(emojis: dict) -> str:
f"{emojis['2']} — 📧 Почта\n\n"
f"<i>{emojis['0']} — В главное меню</i>"
)
def _instruct_trueconf(emojis: dict) -> str:
"""Статический текст Trueconf — без проверки группы."""
return (
"🖥 <b>Инструкция по Trueconf</b>\n\n"
"Данная функция находится в разработке.\n\n"
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
)
def _instruct_trueconf_with_ad(emojis: dict, cn: str) -> str:
"""
Текст Trueconf с проверкой группы 2FA.
cn — CN пользователя из AD.
"""
from utils.ad_checker import check_group_membership
result = check_group_membership(cn, "2FA")
if not result["found"]:
return (
f"🖥 <b>Инструкция по Trueconf</b>\n\n"
f"Пользователь {cn} не найден в Active Directory.\n\n"
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
)
if result["in_group"]:
body = (
f"🖥 <b>Инструкция по Trueconf</b>\n\n"
f"✅ <b>Доступ к Trueconf разрешён.</b>\n\n"
f"У вас есть доступ к функциям Trueconf.\n\n"
f"Детали:\n"
f"• CN: {result['cn']}\n"
f"• Группы 2FA: {', '.join(result['matching_groups'])}\n\n"
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
)
else:
body = (
f"🖥 <b>Инструкция по Trueconf</b>\n\n"
f"❌ <b>Доступ к Trueconf запрещён.</b>\n\n"
f"У вас нет группы 2FA в Active Directory.\n\n"
f"Детали:\n"
f"• CN: {result['cn']}\n"
f"• Групп 2FA: 0\n\n"
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
)
return body
def _instruct_email(emojis: dict) -> str:
return (
"📧 <b>Инструкция по Почте</b>\n\n"
@@ -605,4 +646,5 @@ def _instruct_email(emojis: dict) -> str:
INSTRUCT_MAIN_MENU_TEXT = _instruct_main_menu(EMOJI_DIGITS)
INSTRUCT_TRUECONF_TEXT = _instruct_trueconf(EMOJI_DIGITS)
INSTRUCT_TRUECONF_WITH_AD = _instruct_trueconf_with_ad
INSTRUCT_EMAIL_TEXT = _instruct_email(EMOJI_DIGITS)