mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
feat(web): add MFA login prompt and security settings UI
Handle MFA challenge in login flow (TOTP code input after password verification, recovery code hint, back navigation). Add admin security settings section with session idle timeout, max sessions per user, MFA policy selector, SSO enforcement toggle with break-glass username, and password policy controls. Propagate new i18n keys to all 21 locales.
This commit is contained in:
@@ -2651,6 +2651,33 @@ export const zhCN: TranslationKeys = {
|
||||
currentPasswordIncorrect: "当前密码不正确",
|
||||
changePasswordButton: "修改密码",
|
||||
loginAttemptLimitNote: "登录尝试限制可在系统设置中配置。",
|
||||
adminHeading: "Admin Security Settings",
|
||||
adminDescription: "Enterprise security policy settings. These apply to all users.",
|
||||
sessionIdleTimeout: "Session Idle Timeout (minutes)",
|
||||
sessionIdleTimeoutDesc: "Automatically log out idle sessions. 0 = disabled.",
|
||||
maxSessionsPerUser: "Max Sessions Per User",
|
||||
maxSessionsPerUserDesc: "Limit concurrent sessions per user. 0 = unlimited.",
|
||||
mfaPolicy: "MFA Policy",
|
||||
mfaPolicyDesc: "Require multi-factor authentication for users.",
|
||||
mfaPolicyOptional: "Optional",
|
||||
mfaPolicyAdminsOnly: "Required for admins",
|
||||
mfaPolicyRequired: "Required for all users",
|
||||
ssoEnforcement: "SSO Enforcement",
|
||||
ssoEnforcementDesc: "Require SSO login for all non-break-glass users.",
|
||||
ssoBreakGlassUsername: "Break Glass Admin Username",
|
||||
ssoBreakGlassUsernameDesc:
|
||||
"This admin can still log in with local credentials when SSO is enforced.",
|
||||
passwordMinLength: "Minimum Password Length",
|
||||
passwordMinLengthDesc: "Minimum number of characters required for passwords.",
|
||||
passwordRequireUppercase: "Require Uppercase",
|
||||
passwordRequireUppercaseDesc: "Require at least one uppercase letter.",
|
||||
passwordRequireNumber: "Require Number",
|
||||
passwordRequireNumberDesc: "Require at least one number.",
|
||||
passwordRequireSpecial: "Require Special Character",
|
||||
passwordRequireSpecialDesc: "Require at least one special character.",
|
||||
passwordPolicyHeading: "Password Policy",
|
||||
securitySettingsSaved: "Security settings saved",
|
||||
securitySettingsFailed: "Failed to save security settings",
|
||||
},
|
||||
people: {
|
||||
heading: "成员",
|
||||
@@ -2942,6 +2969,13 @@ export const zhCN: TranslationKeys = {
|
||||
"Your account is not authorized to access this application. Contact your administrator.",
|
||||
samlUserLimitReached: "User limit reached. Contact your administrator.",
|
||||
ssoEnforcedLocalRestricted: "Local login is restricted to authorized administrators.",
|
||||
mfaRequired: "Enter your authentication code",
|
||||
mfaRecoveryHint: "You can also use a recovery code",
|
||||
verify: "Verify",
|
||||
verifying: "Verifying...",
|
||||
mfaInvalidCode: "Invalid code. Please try again.",
|
||||
mfaEnrollmentRequired:
|
||||
"Your organization requires multi-factor authentication. Please set up MFA in your account settings.",
|
||||
methodSaml: "SAML",
|
||||
passwordManagedByProvider: "密码修改由您的身份提供商管理。",
|
||||
enterUsername: "输入用户名",
|
||||
|
||||
Reference in New Issue
Block a user