1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-06-28 10:55:27 +02:00

[AC-1435] Copy updates for Single Organization policy prerequisite for Account Recovery policy (#5774)

* [AC-1435] Update copy/formatting on account recovery policy dialog

* [AC-1435] Cleanup account recovery dialog component

* [AC-1435] Update AccountRecovery policy description

* [AC-1435] Update Tde option description to include notice for Single Org policy

* fix: remove extra hyphen from help link, refs AC-1435

---------

Co-authored-by: Vincent Salucci <vincesalucci21@gmail.com>
This commit is contained in:
Shane Melton 2023-07-18 08:00:43 -07:00 committed by GitHub
parent 7aad24727d
commit 9d8f52ef6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 75 additions and 91 deletions

View File

@ -1,40 +1,23 @@
<app-callout type="info" *ngIf="showKeyConnectorInfo">
<bit-callout type="info" *ngIf="showKeyConnectorInfo">
{{ "keyConnectorPolicyRestriction" | i18n }}
</app-callout>
</bit-callout>
<app-callout type="warning">
{{ "resetPasswordPolicyWarning" | i18n }}
</app-callout>
<bit-callout type="success" [title]="'prerequisite' | i18n" icon="bwi-lightbulb">
{{ "accountRecoverySingleOrgRequirementDesc" | i18n }}
</bit-callout>
<div class="form-group">
<div class="form-check">
<input
class="form-check-input"
type="checkbox"
id="enabled"
[formControl]="enabled"
name="Enabled"
/>
<label class="form-check-label" for="enabled">{{ "turnOn" | i18n }}</label>
</div>
</div>
<bit-callout type="warning">
{{ "accountRecoveryPolicyWarning" | i18n }}
</bit-callout>
<div [formGroup]="data">
<h3 class="mt-4">{{ "resetPasswordPolicyAutoEnroll" | i18n }}</h3>
<p>{{ "resetPasswordPolicyAutoEnrollDescription" | i18n }}</p>
<app-callout type="warning">
{{ "resetPasswordPolicyAutoEnrollWarning" | i18n }}
</app-callout>
<div class="form-check">
<input
class="form-check-input"
type="checkbox"
id="autoEnrollEnabled"
name="AutoEnrollEnabled"
formControlName="autoEnrollEnabled"
/>
<label class="form-check-label" for="autoEnrollEnabled">
{{ "resetPasswordPolicyAutoEnrollCheckbox" | i18n }}
</label>
</div>
</div>
<bit-form-control class="!tw-mb-1">
<input type="checkbox" bitCheckbox [formControl]="enabled" id="enabled" />
<bit-label>{{ "turnOn" | i18n }}</bit-label>
</bit-form-control>
<ng-container [formGroup]="data">
<bit-form-control class="!tw-mb-1">
<input type="checkbox" bitCheckbox formControlName="autoEnrollEnabled" id="autoEnrollEnabled" />
<bit-label>{{ "resetPasswordPolicyAutoEnrollCheckbox" | i18n }}</bit-label>
</bit-form-control>
</ng-container>

View File

@ -1,5 +1,5 @@
import { Component } from "@angular/core";
import { UntypedFormBuilder } from "@angular/forms";
import { FormBuilder } from "@angular/forms";
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
import { PolicyType } from "@bitwarden/common/admin-console/enums";
@ -9,7 +9,7 @@ import { BasePolicy, BasePolicyComponent } from "./base-policy.component";
export class ResetPasswordPolicy extends BasePolicy {
name = "accountRecoveryPolicy";
description = "accountRecoveryPolicyDescription";
description = "accountRecoveryPolicyDesc";
type = PolicyType.ResetPassword;
component = ResetPasswordPolicyComponent;
@ -26,14 +26,9 @@ export class ResetPasswordPolicyComponent extends BasePolicyComponent {
data = this.formBuilder.group({
autoEnrollEnabled: false,
});
defaultTypes: { name: string; value: string }[];
showKeyConnectorInfo = false;
constructor(
private formBuilder: UntypedFormBuilder,
private organizationService: OrganizationService
) {
constructor(private formBuilder: FormBuilder, private organizationService: OrganizationService) {
super();
}

View File

@ -404,8 +404,7 @@
"viewItem": {
"message": "View item"
},
"new":
{
"new": {
"message": "New",
"description": "for adding new items"
},
@ -4595,21 +4594,18 @@
"accountRecoveryPolicy": {
"message": "Account recovery administration"
},
"accountRecoveryPolicyDescription": {
"message": "Recover member accounts when master password or trusted devices are forgotten or lost. The recovery processes is based on the account encryption method."
"accountRecoveryPolicyDesc": {
"message": "Based on the encryption method, recover accounts when master passwords or trusted devices are forgotten or lost."
},
"resetPasswordPolicyWarning": {
"message": "Members in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password."
"accountRecoveryPolicyWarning": {
"message": "Existing accounts with master passwords will require members to self-enroll before administrators can recover their accounts. Automatic enrollment will turn on account recovery for new members."
},
"accountRecoverySingleOrgRequirementDesc": {
"message": "The single organization Enterprise policy must be turned on before activating this policy."
},
"resetPasswordPolicyAutoEnroll": {
"message": "Automatic enrollment"
},
"resetPasswordPolicyAutoEnrollDescription": {
"message": "All members will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw."
},
"resetPasswordPolicyAutoEnrollWarning": {
"message": "Members already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password."
},
"resetPasswordPolicyAutoEnrollCheckbox": {
"message": "Require new members to be enrolled automatically"
},
@ -5225,8 +5221,8 @@
"message": "Use the",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Use the require single-sign-on authentication policy to require all members to log in with SSO.'"
},
"ssoPolicyHelpLink": {
"message": "require single-sign-on authentication policy",
"ssoPolicyHelpAnchor": {
"message": "require single sign-on authentication policy",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Use the require single-sign-on authentication policy to require all members to log in with SSO.'"
},
"ssoPolicyHelpEnd": {
@ -5855,10 +5851,10 @@
"message": "Delete secrets",
"description": "The action to delete multiple secrets from the system."
},
"hardDeleteSecret":{
"hardDeleteSecret": {
"message": "Permanently delete secret"
},
"hardDeleteSecrets":{
"hardDeleteSecrets": {
"message": "Permanently delete secrets"
},
"secretProjectAssociationDescription": {
@ -5937,7 +5933,7 @@
"message": "To get started, add a new secret or import secrets.",
"description": "Message to encourage the user to start adding secrets."
},
"secretsTrashNoItemsMessage":{
"secretsTrashNoItemsMessage": {
"message": "There are no secrets in the trash."
},
"serviceAccountsNoItemsMessage": {
@ -5973,10 +5969,10 @@
}
}
},
"deleteServiceAccountsDialogMessage":{
"deleteServiceAccountsDialogMessage": {
"message": "Deleting service accounts is permanent and irreversible."
},
"deleteServiceAccountsConfirmMessage":{
"deleteServiceAccountsConfirmMessage": {
"message": "Delete $COUNT$ service accounts",
"placeholders": {
"count": {
@ -5985,19 +5981,19 @@
}
}
},
"deleteServiceAccountToast":{
"deleteServiceAccountToast": {
"message": "Service account deleted"
},
"deleteServiceAccountsToast":{
"deleteServiceAccountsToast": {
"message": "Service accounts deleted"
},
"searchServiceAccounts": {
"message": "Search service accounts",
"description": "Placeholder text for searching service accounts."
},
"editServiceAccount":{
"message":"Edit service account",
"description" : "Title for editing a service account."
"editServiceAccount": {
"message": "Edit service account",
"description": "Title for editing a service account."
},
"addProject": {
"message": "Add project",
@ -6037,8 +6033,8 @@
"hardDeleteSecretsConfirmation": {
"message": "Are you sure you want to permanently delete these secrets?"
},
"hardDeletesSuccessToast":{
"message":"Secrets permanently deleted"
"hardDeletesSuccessToast": {
"message": "Secrets permanently deleted"
},
"smAccess": {
"message": "Access",
@ -6140,8 +6136,8 @@
"message": "Secret sent to trash",
"description": "Notification to be displayed when a secret is successfully sent to the trash."
},
"hardDeleteSuccessToast":{
"message":"Secret permanently deleted"
"hardDeleteSuccessToast": {
"message": "Secret permanently deleted"
},
"accessTokens": {
"message": "Access tokens",
@ -6832,19 +6828,27 @@
"trustedDeviceEncryption": {
"message": "Trusted device encryption"
},
"memberDecryptionTdeDescriptionStart": {
"memberDecryptionTdeDescriptionPartOne": {
"message": "Once authenticated, members will decrypt vault data using a key stored on their device. The",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The account recovery administration policy with automatic enrollment will turn on when this option is used.'"
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"memberDecryptionTdeDescriptionLink": {
"message": "account recovery administration policy",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The account recovery administration policy with automatic enrollment will turn on when this option is used.'"
"memberDecryptionTdeDescriptionLinkOne": {
"message": "single organization",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"memberDecryptionTdeDescriptionEnd": {
"message": "with automatic enrollment will turn on when this option is used.",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The master password reset policy with automatic enrollment will turn on when this option is used.'"
"memberDecryptionTdeDescriptionPartTwo": {
"message": "policy and ",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"notFound":{
"memberDecryptionTdeDescriptionLinkTwo": {
"message": "account recovery administration",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"memberDecryptionTdeDescriptionPartThree": {
"message": "policy with automatic enrollment will turn on when this option is used.",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"notFound": {
"message": "$RESOURCE$ not found",
"placeholders": {
"resource": {

View File

@ -14,7 +14,7 @@
<form [formGroup]="ssoConfigForm" [bitSubmit]="submit" *ngIf="!loading">
<p>
{{ "ssoPolicyHelpStart" | i18n }}
<a routerLink="../policies">{{ "ssoPolicyHelpLink" | i18n }}</a>
<a routerLink="../policies">{{ "ssoPolicyHelpAnchor" | i18n }}</a>
{{ "ssoPolicyHelpEnd" | i18n }}
<br />
</p>
@ -81,9 +81,11 @@
{{ "trustedDeviceEncryption" | i18n }}
</bit-label>
<bit-hint>
{{ "memberDecryptionTdeDescriptionStart" | i18n }}
<a routerLink="../policies">{{ "memberDecryptionTdeDescriptionLink" | i18n }}</a>
{{ "memberDecryptionTdeDescriptionEnd" | i18n }}
{{ "memberDecryptionTdeDescriptionPartOne" | i18n }}
<a routerLink="../policies">{{ "memberDecryptionTdeDescriptionLinkOne" | i18n }}</a>
{{ "memberDecryptionTdeDescriptionPartTwo" | i18n }}
<a routerLink="../policies">{{ "memberDecryptionTdeDescriptionLinkTwo" | i18n }}</a>
{{ "memberDecryptionTdeDescriptionPartThree" | i18n }}
</bit-hint>
</bit-radio-button>
</bit-radio-group>