1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-11-26 12:25:20 +01:00

Merge branch 'master' into feature/trusted-device-encryption

This commit is contained in:
Vincent Salucci 2023-07-18 10:03:04 -05:00
commit cd08c2d701
No known key found for this signature in database
GPG Key ID: 0B070977863C1E19
8 changed files with 80 additions and 96 deletions

View File

@ -1,7 +1,7 @@
{ {
"name": "@bitwarden/desktop", "name": "@bitwarden/desktop",
"description": "A secure and free password manager for all of your devices.", "description": "A secure and free password manager for all of your devices.",
"version": "2023.7.0", "version": "2023.7.1",
"keywords": [ "keywords": [
"bitwarden", "bitwarden",
"password", "password",

View File

@ -1,12 +1,12 @@
{ {
"name": "@bitwarden/desktop", "name": "@bitwarden/desktop",
"version": "2023.7.0", "version": "2023.7.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@bitwarden/desktop", "name": "@bitwarden/desktop",
"version": "2023.7.0", "version": "2023.7.1",
"license": "GPL-3.0", "license": "GPL-3.0",
"dependencies": { "dependencies": {
"@bitwarden/desktop-native": "file:../desktop_native" "@bitwarden/desktop-native": "file:../desktop_native"

View File

@ -2,7 +2,7 @@
"name": "@bitwarden/desktop", "name": "@bitwarden/desktop",
"productName": "Bitwarden", "productName": "Bitwarden",
"description": "A secure and free password manager for all of your devices.", "description": "A secure and free password manager for all of your devices.",
"version": "2023.7.0", "version": "2023.7.1",
"author": "Bitwarden Inc. <hello@bitwarden.com> (https://bitwarden.com)", "author": "Bitwarden Inc. <hello@bitwarden.com> (https://bitwarden.com)",
"homepage": "https://bitwarden.com", "homepage": "https://bitwarden.com",
"license": "GPL-3.0", "license": "GPL-3.0",

View File

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

View File

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

View File

@ -404,8 +404,7 @@
"viewItem": { "viewItem": {
"message": "View item" "message": "View item"
}, },
"new": "new": {
{
"message": "New", "message": "New",
"description": "for adding new items" "description": "for adding new items"
}, },
@ -971,7 +970,7 @@
"exportWarningDesc": { "exportWarningDesc": {
"message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it."
}, },
"exportSecretsWarningDesc": { "exportSecretsWarningDesc": {
"message": "This export contains your secrets data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." "message": "This export contains your secrets data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it."
}, },
"encExportKeyWarningDesc": { "encExportKeyWarningDesc": {
@ -4595,21 +4594,18 @@
"accountRecoveryPolicy": { "accountRecoveryPolicy": {
"message": "Account recovery administration" "message": "Account recovery administration"
}, },
"accountRecoveryPolicyDescription": { "accountRecoveryPolicyDesc": {
"message": "Recover member accounts when master password or trusted devices are forgotten or lost. The recovery processes is based on the account encryption method." "message": "Based on the encryption method, recover accounts when master passwords or trusted devices are forgotten or lost."
}, },
"resetPasswordPolicyWarning": { "accountRecoveryPolicyWarning": {
"message": "Members in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." "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": { "resetPasswordPolicyAutoEnroll": {
"message": "Automatic enrollment" "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": { "resetPasswordPolicyAutoEnrollCheckbox": {
"message": "Require new members to be enrolled automatically" "message": "Require new members to be enrolled automatically"
}, },
@ -5225,8 +5221,8 @@
"message": "Use the", "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.'" "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": { "ssoPolicyHelpAnchor": {
"message": "require single-sign-on authentication policy", "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.'" "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": { "ssoPolicyHelpEnd": {
@ -5855,10 +5851,10 @@
"message": "Delete secrets", "message": "Delete secrets",
"description": "The action to delete multiple secrets from the system." "description": "The action to delete multiple secrets from the system."
}, },
"hardDeleteSecret":{ "hardDeleteSecret": {
"message": "Permanently delete secret" "message": "Permanently delete secret"
}, },
"hardDeleteSecrets":{ "hardDeleteSecrets": {
"message": "Permanently delete secrets" "message": "Permanently delete secrets"
}, },
"secretProjectAssociationDescription": { "secretProjectAssociationDescription": {
@ -5937,14 +5933,14 @@
"message": "To get started, add a new secret or import secrets.", "message": "To get started, add a new secret or import secrets.",
"description": "Message to encourage the user to start adding secrets." "description": "Message to encourage the user to start adding secrets."
}, },
"secretsTrashNoItemsMessage":{ "secretsTrashNoItemsMessage": {
"message": "There are no secrets in the trash." "message": "There are no secrets in the trash."
}, },
"serviceAccountsNoItemsMessage": { "serviceAccountsNoItemsMessage": {
"message": "Create a new service account to get started automating secret access.", "message": "Create a new service account to get started automating secret access.",
"description": "Message to encourage the user to start creating service accounts." "description": "Message to encourage the user to start creating service accounts."
}, },
"serviceAccountsNoItemsTitle": { "serviceAccountsNoItemsTitle": {
"message": "Nothing to show yet", "message": "Nothing to show yet",
"description": "Title to indicate that there are no service accounts to display." "description": "Title to indicate that there are no service accounts to display."
}, },
@ -5965,7 +5961,7 @@
"description": "Action to view the details of a service account." "description": "Action to view the details of a service account."
}, },
"deleteServiceAccountDialogMessage": { "deleteServiceAccountDialogMessage": {
"message": "Deleting service account $SERVICE_ACCOUNT$ is permanent and irreversible.", "message": "Deleting service account $SERVICE_ACCOUNT$ is permanent and irreversible.",
"placeholders": { "placeholders": {
"service_account": { "service_account": {
"content": "$1", "content": "$1",
@ -5973,11 +5969,11 @@
} }
} }
}, },
"deleteServiceAccountsDialogMessage":{ "deleteServiceAccountsDialogMessage": {
"message": "Deleting service accounts is permanent and irreversible." "message": "Deleting service accounts is permanent and irreversible."
}, },
"deleteServiceAccountsConfirmMessage":{ "deleteServiceAccountsConfirmMessage": {
"message": "Delete $COUNT$ service accounts", "message": "Delete $COUNT$ service accounts",
"placeholders": { "placeholders": {
"count": { "count": {
"content": "$1", "content": "$1",
@ -5985,19 +5981,19 @@
} }
} }
}, },
"deleteServiceAccountToast":{ "deleteServiceAccountToast": {
"message": "Service account deleted" "message": "Service account deleted"
}, },
"deleteServiceAccountsToast":{ "deleteServiceAccountsToast": {
"message": "Service accounts deleted" "message": "Service accounts deleted"
}, },
"searchServiceAccounts": { "searchServiceAccounts": {
"message": "Search service accounts", "message": "Search service accounts",
"description": "Placeholder text for searching service accounts." "description": "Placeholder text for searching service accounts."
}, },
"editServiceAccount":{ "editServiceAccount": {
"message":"Edit service account", "message": "Edit service account",
"description" : "Title for editing a service account." "description": "Title for editing a service account."
}, },
"addProject": { "addProject": {
"message": "Add project", "message": "Add project",
@ -6037,8 +6033,8 @@
"hardDeleteSecretsConfirmation": { "hardDeleteSecretsConfirmation": {
"message": "Are you sure you want to permanently delete these secrets?" "message": "Are you sure you want to permanently delete these secrets?"
}, },
"hardDeletesSuccessToast":{ "hardDeletesSuccessToast": {
"message":"Secrets permanently deleted" "message": "Secrets permanently deleted"
}, },
"smAccess": { "smAccess": {
"message": "Access", "message": "Access",
@ -6052,7 +6048,7 @@
"message": "Service account name", "message": "Service account name",
"description": "Label for the name of a service account" "description": "Label for the name of a service account"
}, },
"serviceAccountCreated": { "serviceAccountCreated": {
"message": "Service account created", "message": "Service account created",
"description": "Notifies that a new service account has been created" "description": "Notifies that a new service account has been created"
}, },
@ -6140,8 +6136,8 @@
"message": "Secret sent to trash", "message": "Secret sent to trash",
"description": "Notification to be displayed when a secret is successfully sent to the trash." "description": "Notification to be displayed when a secret is successfully sent to the trash."
}, },
"hardDeleteSuccessToast":{ "hardDeleteSuccessToast": {
"message":"Secret permanently deleted" "message": "Secret permanently deleted"
}, },
"accessTokens": { "accessTokens": {
"message": "Access tokens", "message": "Access tokens",
@ -6853,20 +6849,28 @@
"trustedDeviceEncryption": { "trustedDeviceEncryption": {
"message": "Trusted device encryption" "message": "Trusted device encryption"
}, },
"memberDecryptionTdeDescriptionStart": { "memberDecryptionTdeDescriptionPartOne": {
"message": "Once authenticated, members will decrypt vault data using a key stored on their device. The", "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": { "memberDecryptionTdeDescriptionLinkOne": {
"message": "account recovery administration policy", "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 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.'"
}, },
"memberDecryptionTdeDescriptionEnd": { "memberDecryptionTdeDescriptionPartTwo": {
"message": "with automatic enrollment will turn on when this option is used.", "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 master password reset 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":{ "memberDecryptionTdeDescriptionLinkTwo": {
"message": "$RESOURCE$ not found", "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": { "placeholders": {
"resource": { "resource": {
"content": "$1", "content": "$1",

View File

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

2
package-lock.json generated
View File

@ -229,7 +229,7 @@
}, },
"apps/desktop": { "apps/desktop": {
"name": "@bitwarden/desktop", "name": "@bitwarden/desktop",
"version": "2023.7.0", "version": "2023.7.1",
"hasInstallScript": true, "hasInstallScript": true,
"license": "GPL-3.0" "license": "GPL-3.0"
}, },