1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 08:13:42 +00:00

[SM-409] Project Access Policies (#4472)

* Initial working multi select

* Create project access selector component

* Refactor to shared components for access policies

* Refactor access policies table

* Initial working create & update access policies

* Add dynamic multi-select + DRY refactor

* FIGMA updates

* Fix table and refactor access-policy service

* Code review updates

* Fix disable/loading logic for selector

* Don't run onchange for creation

* Migrate to new group service

* simplify async action

* Refactor access-policies

Co-authored-by: Will Martin <willmartian@users.noreply.github.com>

* Refactor access-selector

* Add using potential grantee endpoints.

* refactor to use observables

* combine access-selector and access-policies component

* lift dynamic i18n out of template

* use strict equality

* fix multiselect refresh

* change grantees to function

* Fix multiple HTTP calls

* don't broadcast on AP update

* Code review updates

* Use refactored potential-grantees endpoint

* potential grantees refactor v2

---------

Co-authored-by: Will Martin <willmartian@users.noreply.github.com>
Co-authored-by: William Martin <contact@willmartian.com>
This commit is contained in:
Thomas Avery
2023-02-06 11:28:51 -06:00
committed by GitHub
parent bbc709d74e
commit 4ffe1c7e57
23 changed files with 939 additions and 3 deletions

View File

@@ -1,6 +1,8 @@
import { NgModule } from "@angular/core";
import { MultiSelectModule } from "@bitwarden/components";
import { ProductSwitcherModule } from "@bitwarden/web-vault/app/layouts/product-switcher/product-switcher.module";
import { CoreOrganizationModule } from "@bitwarden/web-vault/app/organizations/core";
import { SharedModule } from "@bitwarden/web-vault/app/shared";
import { BulkStatusDialogComponent } from "../layout/dialogs/bulk-status-dialog.component";
@@ -8,10 +10,11 @@ import { HeaderComponent } from "../layout/header.component";
import { NewMenuComponent } from "../layout/new-menu.component";
import { NoItemsComponent } from "../layout/no-items.component";
import { AccessSelectorComponent } from "./access-policies/access-selector.component";
import { SecretsListComponent } from "./secrets-list.component";
@NgModule({
imports: [SharedModule, ProductSwitcherModule],
imports: [SharedModule, ProductSwitcherModule, MultiSelectModule, CoreOrganizationModule],
exports: [
SharedModule,
BulkStatusDialogComponent,
@@ -19,6 +22,7 @@ import { SecretsListComponent } from "./secrets-list.component";
NewMenuComponent,
NoItemsComponent,
SecretsListComponent,
AccessSelectorComponent,
],
declarations: [
BulkStatusDialogComponent,
@@ -26,6 +30,7 @@ import { SecretsListComponent } from "./secrets-list.component";
NewMenuComponent,
NoItemsComponent,
SecretsListComponent,
AccessSelectorComponent,
],
providers: [],
bootstrap: [],