SACC / core /login_modes.py
Geek66666
Sync upstream login modes and course matching
8ab1bb1
Raw
History Blame Contribute Delete
1.21 kB
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
]