from __future__ import annotations LOGIN_MODE_UNIFIED = "unified" LOGIN_MODE_ZHJW_DIRECT = "zhjw_direct" LOGIN_MODES = ( LOGIN_MODE_UNIFIED, LOGIN_MODE_ZHJW_DIRECT, ) LOGIN_MODE_LABELS = { LOGIN_MODE_UNIFIED: "\u7edf\u4e00\u8ba4\u8bc1", LOGIN_MODE_ZHJW_DIRECT: "\u6559\u52a1\u76f4\u8fde", } LOGIN_MODE_DESCRIPTIONS = { LOGIN_MODE_UNIFIED: "\u901a\u8fc7\u5ddd\u5927\u7edf\u4e00\u8ba4\u8bc1\u767b\u5f55\uff1b\u7a33\u5b9a\u7248\u4fdd\u7559\u77ed\u4fe1\u9a8c\u8bc1\u7801\u8f85\u52a9\uff0c\u4f18\u5316\u7248\u4f1a\u5c1d\u8bd5 2FA \u7ed5\u8fc7\u3002", LOGIN_MODE_ZHJW_DIRECT: "\u76f4\u63a5\u6253\u5f00\u6559\u52a1\u5904\u767b\u5f55\u9875\uff0c\u81ea\u52a8\u586b\u5199\u8d26\u53f7\u5bc6\u7801\u5e76\u8bc6\u522b\u9a8c\u8bc1\u7801\u3002", } def normalize_login_mode(value: str | None) -> str: normalized = str(value or "").strip().lower() if normalized in LOGIN_MODES: return normalized return LOGIN_MODE_UNIFIED def build_login_mode_options() -> list[dict[str, str]]: return [ { "value": mode, "label": LOGIN_MODE_LABELS[mode], "description": LOGIN_MODE_DESCRIPTIONS[mode], } for mode in LOGIN_MODES ]