mirror of
https://github.com/bitwarden/browser.git
synced 2024-12-27 17:18:04 +01:00
[SG-329] Disabled Org display (#3050)
* chore: added strings for disabled org messages * chore: added icon display * chore: added prevent filter check * chore: code changes for desktop * chore: browser
This commit is contained in:
parent
f233b0cab7
commit
3093c32f76
@ -1967,5 +1967,11 @@
|
|||||||
},
|
},
|
||||||
"ssoKeyConnectorError": {
|
"ssoKeyConnectorError": {
|
||||||
"message": "Key Connector error: make sure Key Connector is available and working correctly."
|
"message": "Key Connector error: make sure Key Connector is available and working correctly."
|
||||||
|
},
|
||||||
|
"organizationIsDisabled": {
|
||||||
|
"message": "Organization is disabled."
|
||||||
|
},
|
||||||
|
"disabledOrganizationFilterError" : {
|
||||||
|
"message" : "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,12 @@
|
|||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
></i>
|
></i>
|
||||||
<span> {{ organization.name | ellipsis: 21:true }}</span>
|
<span> {{ organization.name | ellipsis: 21:true }}</span>
|
||||||
|
<i
|
||||||
|
*ngIf="!organization.enabled"
|
||||||
|
class="bwi bwi-fw bwi-exclamation-triangle text-danger"
|
||||||
|
aria-label="{{ 'organizationIsDisabled' | i18n }}"
|
||||||
|
appA11yTitle="{{ 'organizationIsDisabled' | i18n }}"
|
||||||
|
></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
@ -17,6 +17,7 @@ import { merge } from "rxjs";
|
|||||||
import { VaultFilter } from "@bitwarden/angular/modules/vault-filter/models/vault-filter.model";
|
import { VaultFilter } from "@bitwarden/angular/modules/vault-filter/models/vault-filter.model";
|
||||||
import { BroadcasterService } from "@bitwarden/common/abstractions/broadcaster.service";
|
import { BroadcasterService } from "@bitwarden/common/abstractions/broadcaster.service";
|
||||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||||
|
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||||
import { Organization } from "@bitwarden/common/models/domain/organization";
|
import { Organization } from "@bitwarden/common/models/domain/organization";
|
||||||
|
|
||||||
import { VaultFilterService } from "../../services/vaultFilter.service";
|
import { VaultFilterService } from "../../services/vaultFilter.service";
|
||||||
@ -82,7 +83,8 @@ export class VaultSelectComponent implements OnInit {
|
|||||||
private ngZone: NgZone,
|
private ngZone: NgZone,
|
||||||
private broadcasterService: BroadcasterService,
|
private broadcasterService: BroadcasterService,
|
||||||
private overlay: Overlay,
|
private overlay: Overlay,
|
||||||
private viewContainerRef: ViewContainerRef
|
private viewContainerRef: ViewContainerRef,
|
||||||
|
private platformUtilsService: PlatformUtilsService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async ngOnInit() {
|
async ngOnInit() {
|
||||||
@ -171,10 +173,18 @@ export class VaultSelectComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
selectOrganization(organization: Organization) {
|
selectOrganization(organization: Organization) {
|
||||||
this.vaultFilterDisplay = organization.name;
|
if (!organization.enabled) {
|
||||||
this.vaultFilterService.setVaultFilter(organization.id);
|
this.platformUtilsService.showToast(
|
||||||
this.onVaultSelectionChanged.emit();
|
"error",
|
||||||
this.close();
|
null,
|
||||||
|
this.i18nService.t("disabledOrganizationFilterError")
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.vaultFilterDisplay = organization.name;
|
||||||
|
this.vaultFilterService.setVaultFilter(organization.id);
|
||||||
|
this.onVaultSelectionChanged.emit();
|
||||||
|
this.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
selectAllVaults() {
|
selectAllVaults() {
|
||||||
this.vaultFilterDisplay = this.i18nService.t(this.vaultFilterService.allVaults);
|
this.vaultFilterDisplay = this.i18nService.t(this.vaultFilterService.allVaults);
|
||||||
|
@ -92,6 +92,12 @@
|
|||||||
>
|
>
|
||||||
<i class="bwi bwi-fw bwi-business" aria-hidden="true"></i>
|
<i class="bwi bwi-fw bwi-business" aria-hidden="true"></i>
|
||||||
{{ organization.name }}
|
{{ organization.name }}
|
||||||
|
<i
|
||||||
|
*ngIf="!organization.enabled"
|
||||||
|
class="bwi bwi-fw bwi-exclamation-triangle text-danger"
|
||||||
|
aria-label="{{ 'organizationIsDisabled' | i18n }}"
|
||||||
|
appA11yTitle="{{ 'organizationIsDisabled' | i18n }}"
|
||||||
|
></i>
|
||||||
</button>
|
</button>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
|
@ -2,6 +2,9 @@ import { Component } from "@angular/core";
|
|||||||
|
|
||||||
import { OrganizationFilterComponent as BaseOrganizationFilterComponent } from "@bitwarden/angular/modules/vault-filter/components/organization-filter.component";
|
import { OrganizationFilterComponent as BaseOrganizationFilterComponent } from "@bitwarden/angular/modules/vault-filter/components/organization-filter.component";
|
||||||
import { DisplayMode } from "@bitwarden/angular/modules/vault-filter/models/display-mode";
|
import { DisplayMode } from "@bitwarden/angular/modules/vault-filter/models/display-mode";
|
||||||
|
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||||
|
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||||
|
import { Organization } from "@bitwarden/common/models/domain/organization";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: "app-organization-filter",
|
selector: "app-organization-filter",
|
||||||
@ -16,4 +19,24 @@ export class OrganizationFilterComponent extends BaseOrganizationFilterComponent
|
|||||||
hiddenDisplayModes.indexOf(this.displayMode) === -1
|
hiddenDisplayModes.indexOf(this.displayMode) === -1
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private i18nService: I18nService,
|
||||||
|
private platformUtilsService: PlatformUtilsService
|
||||||
|
) {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
async applyOrganizationFilter(organization: Organization) {
|
||||||
|
if (organization.enabled) {
|
||||||
|
//proceed with default behaviour for enabled organizations
|
||||||
|
super.applyOrganizationFilter(organization);
|
||||||
|
} else {
|
||||||
|
this.platformUtilsService.showToast(
|
||||||
|
"error",
|
||||||
|
null,
|
||||||
|
this.i18nService.t("disabledOrganizationFilterError")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1964,6 +1964,12 @@
|
|||||||
"apiKey": {
|
"apiKey": {
|
||||||
"message": "API Key"
|
"message": "API Key"
|
||||||
},
|
},
|
||||||
|
"organizationIsDisabled": {
|
||||||
|
"message": "Organization is disabled."
|
||||||
|
},
|
||||||
|
"disabledOrganizationFilterError" : {
|
||||||
|
"message" : "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
|
||||||
|
},
|
||||||
"neverLockWarning": {
|
"neverLockWarning": {
|
||||||
"message": "Are you sure you want to use the \"Never\" option? Setting your lock options to \"Never\" stores your vault's encryption key on your device. If you use this option you should ensure that you keep your device properly protected."
|
"message": "Are you sure you want to use the \"Never\" option? Setting your lock options to \"Never\" stores your vault's encryption key on your device. If you use this option you should ensure that you keep your device properly protected."
|
||||||
}
|
}
|
||||||
|
@ -129,6 +129,12 @@
|
|||||||
<button class="filter-button" (click)="applyOrganizationFilter(organization)">
|
<button class="filter-button" (click)="applyOrganizationFilter(organization)">
|
||||||
<i class="bwi bwi-fw bwi-business" aria-hidden="true"></i>
|
<i class="bwi bwi-fw bwi-business" aria-hidden="true"></i>
|
||||||
{{ organization.name }}
|
{{ organization.name }}
|
||||||
|
<i
|
||||||
|
*ngIf="!organization.enabled"
|
||||||
|
class="bwi bwi-fw bwi-exclamation-triangle text-danger"
|
||||||
|
aria-label="{{ 'organizationIsDisabled' | i18n }}"
|
||||||
|
appA11yTitle="{{ 'organizationIsDisabled' | i18n }}"
|
||||||
|
></i>
|
||||||
</button>
|
</button>
|
||||||
<ng-container>
|
<ng-container>
|
||||||
<button [bitMenuTriggerFor]="orgMenu" class="org-options ml-auto">
|
<button [bitMenuTriggerFor]="orgMenu" class="org-options ml-auto">
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
import { Component } from "@angular/core";
|
import { Component } from "@angular/core";
|
||||||
|
|
||||||
import { OrganizationFilterComponent as BaseOrganizationFilterComponent } from "@bitwarden/angular/modules/vault-filter/components/organization-filter.component";
|
import { OrganizationFilterComponent as BaseOrganizationFilterComponent } from "@bitwarden/angular/modules/vault-filter/components/organization-filter.component";
|
||||||
|
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||||
|
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||||
|
import { Organization } from "@bitwarden/common/models/domain/organization";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: "app-organization-filter",
|
selector: "app-organization-filter",
|
||||||
@ -8,4 +11,24 @@ import { OrganizationFilterComponent as BaseOrganizationFilterComponent } from "
|
|||||||
})
|
})
|
||||||
export class OrganizationFilterComponent extends BaseOrganizationFilterComponent {
|
export class OrganizationFilterComponent extends BaseOrganizationFilterComponent {
|
||||||
displayText = "allVaults";
|
displayText = "allVaults";
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private i18nService: I18nService,
|
||||||
|
private platformUtilsService: PlatformUtilsService
|
||||||
|
) {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
async applyOrganizationFilter(organization: Organization) {
|
||||||
|
if (organization.enabled) {
|
||||||
|
//proceed with default behaviour for enabled organizations
|
||||||
|
super.applyOrganizationFilter(organization);
|
||||||
|
} else {
|
||||||
|
this.platformUtilsService.showToast(
|
||||||
|
"error",
|
||||||
|
null,
|
||||||
|
this.i18nService.t("disabledOrganizationFilterError")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3218,6 +3218,9 @@
|
|||||||
"organizationIsDisabled": {
|
"organizationIsDisabled": {
|
||||||
"message": "Organization is disabled."
|
"message": "Organization is disabled."
|
||||||
},
|
},
|
||||||
|
"disabledOrganizationFilterError" : {
|
||||||
|
"message" : "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
|
||||||
|
},
|
||||||
"licenseIsExpired": {
|
"licenseIsExpired": {
|
||||||
"message": "License is expired."
|
"message": "License is expired."
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user