{ "Updating Credentials" }
-{ displayname }
-{ spn }
+{ names }
+{ domain }
{ "✅ Password Set" }
+{ "Password" }
- -
{ "❌ MFA Disabled" }
+{ "Time-based One Time Password (TOTP)" }
+{ "TOTPs are 6 digit codes generated on-demand as a second authentication factor."}
> @@ -566,15 +566,15 @@ impl CredentialResetApp { }) => { html! { <> -
{ "✅ Password Set" }
+{ "Password" }
- -
{ "✅ MFA Enabled" }
- ++
{ "Time-based One Time Password (TOTP)" }
+{ "TOTPs are 6 digit codes generated on-demand as a second authentication factor."}
<> { for totp_set.iter() .map(|detail| html! {
+
@@ -600,9 +601,10 @@ impl CredentialResetApp { }) => { html! { <> -
{ "Generated Password" }
+{ "Password" }
+{ "In order to set up alternative authentication methods, you must delete the generated password." }
> } @@ -613,9 +615,9 @@ impl CredentialResetApp { }) => { html! { <> -{ "Webauthn Only - Will migrate to Passkeys in a future update" }
+{ "Webauthn Only - Will migrate to passkeys in a future update" }
> } @@ -632,7 +634,7 @@ impl CredentialResetApp { html! {} @@ -640,38 +642,44 @@ impl CredentialResetApp { html! {<>>} }; - let pw_warn = match primary_state { + let alt_auth_method_warning = match primary_state { CUCredState::Modifiable => { html! { <> -
{ "Legacy password paired with other authentication factors." }
-{ "It is recommended you avoid setting these if possible, as these can be phished or exploited." }
+{ "If possible, passkeys should be used instead, as they are phishing and exploit resistant." }
> } } CUCredState::DeleteOnly => { html! { <> -{ "Legacy password paired with other authentication factors." }
-{ "Account policy prevents you modifying this credential, but you may remove it." }
+{ "If possible, passkeys should be used instead, as they are phishing and exploit resistant." }
+{ "Account policy prevents you modifying these credentials, but you may remove them." }
> } } CUCredState::AccessDeny => { - html! { <>{ "You do not have access to modify the Password or TOTP tokens of this account" }
> } + html! { + <> +{ "You do not have access to modify these credentials." }
+ > + } } CUCredState::PolicyDeny => { - html! { <>{ "Account policy prevents you setting the Password or TOTP tokens of this account" }
> } + html! { + <> +{ "Account policy prevents you from setting these credentials" }
+ > + } } }; html! { <>- -
{"Password / TOTP"}
- { pw_warn } - { pw_html_inner } +{"Alternative Authentication Methods" }
+ { alt_auth_method_warning } + { alt_auth_method_inner }{"Passkeys"}
-{ "Strong cryptographic authenticators with self contained multi-factor authentication." }
- - { if passkeys.is_empty() { - html! {{ "No Passkeys Registered" }
} - } else { - html! { <>> } - } } +{ "Easy to use digital credentials with self-contained multi-factor authentication designed to replace passwords." }
++ { "Windows" } + { ", " } + { "MacOS" } + { ", " } + { "Android" } + { ", and " } + { "iOS" } + { " have built-in support for passkeys."} +
{ for passkeys.iter() .map(|detail| @@ -744,8 +756,6 @@ impl CredentialResetApp { <>{"Attested Passkeys"}
- { if attested_passkeys.is_empty() { html! {{ "No Passkeys Registered" }
} } else { html! {<>>} } } - { for attested_passkeys.iter() .map(|detail| PasskeyRemoveModalApp::render_button(&detail.tag, detail.uuid) diff --git a/server/web_ui/user/src/credential/totpmodal.rs b/server/web_ui/user/src/credential/totpmodal.rs index 08d0630b4..039261a24 100644 --- a/server/web_ui/user/src/credential/totpmodal.rs +++ b/server/web_ui/user/src/credential/totpmodal.rs @@ -357,6 +357,35 @@ impl Component for TotpModalApp {