From e17649d869fe75cd851f2a53a0f9f06ebb7e2b85 Mon Sep 17 00:00:00 2001 From: Vincent Salucci <26154748+vincentsalucci@users.noreply.github.com> Date: Wed, 24 Feb 2021 16:03:44 -0600 Subject: [PATCH] [Send] Enterprise policy enforcement (#1637) --- src/_locales/en/messages.json | 4 ++ src/popup/components/send-list.component.html | 4 +- src/popup/components/send-list.component.ts | 1 + src/popup/scss/base.scss | 10 +++++ src/popup/send/send-add-edit.component.html | 45 ++++++++++++------- src/popup/send/send-groupings.component.html | 22 +++++---- src/popup/send/send-groupings.component.ts | 10 +++++ src/popup/send/send-type.component.html | 15 ++++--- src/popup/send/send-type.component.ts | 10 +++++ 9 files changed, 87 insertions(+), 34 deletions(-) diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index 07f5ea794b..90301bb584 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -1624,6 +1624,10 @@ "newPassword": { "message": "New Password" }, + "sendDisabled": { + "message": "Send Disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "sendDisabledWarning": { "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." diff --git a/src/popup/components/send-list.component.html b/src/popup/components/send-list.component.html index 7f2105296c..7862cd640e 100644 --- a/src/popup/components/send-list.component.html +++ b/src/popup/components/send-list.component.html @@ -39,8 +39,8 @@ (click)="copySendLink(s)"> - + diff --git a/src/popup/components/send-list.component.ts b/src/popup/components/send-list.component.ts index ddb396acb0..f2bbb92312 100644 --- a/src/popup/components/send-list.component.ts +++ b/src/popup/components/send-list.component.ts @@ -16,6 +16,7 @@ import { SendType } from 'jslib/enums/sendType'; export class SendListComponent { @Input() sends: SendView[]; @Input() title: string; + @Input() disabledByPolicy = false; @Output() onSelected = new EventEmitter(); @Output() onCopySendLink = new EventEmitter(); @Output() onRemovePassword = new EventEmitter(); diff --git a/src/popup/scss/base.scss b/src/popup/scss/base.scss index 7911b0acd4..a2dc78a3b1 100644 --- a/src/popup/scss/base.scss +++ b/src/popup/scss/base.scss @@ -356,6 +356,16 @@ content { &.no-header { top: 0; } + + &.flex { + display: flex; + flex-flow: column; + height: calc(100% - 44px); + + &.tab-page { + height: calc(100% - 99px); + } + } } .tab-page { diff --git a/src/popup/send/send-add-edit.component.html b/src/popup/send/send-add-edit.component.html index 8a39e599b1..b925060efd 100644 --- a/src/popup/send/send-add-edit.component.html +++ b/src/popup/send/send-add-edit.component.html @@ -7,17 +7,21 @@ {{title}}
-
+ + + {{'sendDisabledWarning' | i18n}} + + title="{{'sendFileCalloutHeader' | i18n}}" + *ngIf="showFilePopoutMessage && send.type === sendType.File && !disableSend" (click)="popOutWindow()">
{{'sendFirefoxFileWarning' | i18n}}
{{'sendSafariFileWarning' | i18n}}
@@ -26,7 +30,7 @@
- +
@@ -122,7 +130,8 @@
+ [(ngModel)]="deletionDate" required placeholder="MM/DD/YYYY HH:MM AM/PM" + [readonly]="disableSend">
-
-
- + + + {{'sendDisabledWarning' | i18n}} +

{{'noItemsInList' | i18n}}

- +
@@ -52,9 +56,9 @@
{{sends.length}}
- +
@@ -64,9 +68,9 @@
- +
diff --git a/src/popup/send/send-groupings.component.ts b/src/popup/send/send-groupings.component.ts index 446e26af18..e5626cfd01 100644 --- a/src/popup/send/send-groupings.component.ts +++ b/src/popup/send/send-groupings.component.ts @@ -125,9 +125,19 @@ export class SendGroupingsComponent extends BaseSendComponent { } async addSend() { + if (this.disableSend) { + return; + } this.router.navigate(['/add-send']); } + async removePassword(s: SendView): Promise { + if (this.disableSend) { + return; + } + super.removePassword(s); + } + showSearching() { return this.hasSearched || (!this.searchPending && this.searchService.isSearchable(this.searchText)); } diff --git a/src/popup/send/send-type.component.html b/src/popup/send/send-type.component.html index 24c9f881cd..7fe28aacfc 100644 --- a/src/popup/send/send-type.component.html +++ b/src/popup/send/send-type.component.html @@ -11,17 +11,20 @@
-
- + + + {{'sendDisabledWarning' | i18n}} +

{{'noItemsInList' | i18n}}

-
@@ -32,9 +35,9 @@ {{filteredSends.length}}
- +
diff --git a/src/popup/send/send-type.component.ts b/src/popup/send/send-type.component.ts index e8215b7515..37338ca4eb 100644 --- a/src/popup/send/send-type.component.ts +++ b/src/popup/send/send-type.component.ts @@ -132,9 +132,19 @@ export class SendTypeComponent extends BaseSendComponent { } async addSend() { + if (this.disableSend) { + return; + } this.router.navigate(['/add-send'], { queryParams: { type: this.type } }); } + async removePassword(s: SendView): Promise { + if (this.disableSend) { + return; + } + super.removePassword(s); + } + back() { (window as any).routeDirection = 'b'; this.location.back();