diff --git a/src/Sections/Humans.GoogleIntegration/Docs/features/workspace-account-provisioning.md b/src/Sections/Humans.GoogleIntegration/Docs/features/workspace-account-provisioning.md index b60b18e4d5..0dec7a22bb 100644 --- a/src/Sections/Humans.GoogleIntegration/Docs/features/workspace-account-provisioning.md +++ b/src/Sections/Humans.GoogleIntegration/Docs/features/workspace-account-provisioning.md @@ -107,7 +107,10 @@ Nobodies Collective uses Google Workspace for organizational email (@nobodies.te ``` pw: 2fa: + + The 2fa code is a one-time backup code: use it at the verification step, then set up two-step verification properly so you don't get locked out again. How-to: ``` + so the admin can paste one message that carries the credentials and the enrollment how-to. The guide link is absolute (current request scheme + host). When backup-code generation failed (partial success, below) there is no code, and the clipboard falls back to the password-only `pw: ` line. - Modal text-content is cleared on close so browser back/refresh can't re-expose the secrets - Two audit entries recorded on the success path: `WorkspaceAccountPasswordReset` then `WorkspaceAccountBackupCodesGenerated`. The blocked-by-2SV path records `WorkspaceAccountResetBlockedFor2Sv` instead and performs no Workspace mutation. - Requires the `admin.directory.user.security` scope on the service account credential diff --git a/src/Sections/Humans.GoogleIntegration/Views/Google/Accounts.cshtml b/src/Sections/Humans.GoogleIntegration/Views/Google/Accounts.cshtml index 357f3dc37a..7ea3bd2689 100644 --- a/src/Sections/Humans.GoogleIntegration/Views/Google/Accounts.cshtml +++ b/src/Sections/Humans.GoogleIntegration/Views/Google/Accounts.cshtml @@ -276,8 +276,9 @@ @if (recoveryCreds is not null && !string.IsNullOrEmpty(recoveryCreds.TempPassword)) { var hasBackupCode = !string.IsNullOrEmpty(recoveryCreds.BackupCode); + var twoStepGuideUrl = Url.Action("Document", "Guide", new { name = "TwoStepVerification" }, Context.Request.Scheme); var clipboardText = hasBackupCode - ? $"pw: {recoveryCreds.TempPassword}\n2fa: {recoveryCreds.BackupCode}" + ? $"pw: {recoveryCreds.TempPassword}\n2fa: {recoveryCreds.BackupCode}\n\nThe 2fa code is a one-time backup code: use it at the verification step, then set up two-step verification properly so you don't get locked out again. How-to: {twoStepGuideUrl}" : $"pw: {recoveryCreds.TempPassword}"; -
@clipboardText
+
@clipboardText