From 975d38ba27b43a617a40aa474c11f915cba1e01f Mon Sep 17 00:00:00 2001 From: Rui Tome Date: Mon, 27 Nov 2023 13:13:35 +0000 Subject: [PATCH] =?UTF-8?q?[AC-1139]=C2=A0Reverted=20change=20that=20intro?= =?UTF-8?q?duced=20ConfigService=20as=20a=20parameter=20to=20canAccessVaul?= =?UTF-8?q?tTab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization-switcher.component.ts | 15 ++----- .../guards/org-permissions.guard.spec.ts | 4 +- .../guards/org-permissions.guard.ts | 15 +++---- .../guards/org-redirect.guard.ts | 11 ++--- .../organization-layout.component.html | 2 +- .../layouts/organization-layout.component.ts | 19 ++------- .../organization-routing.module.ts | 8 +--- .../web/src/app/layouts/navbar.component.html | 12 ++---- apps/web/src/app/layouts/navbar.component.ts | 11 ++--- .../app/tools/import/import-web.component.ts | 6 +-- .../vault/core/views/collection-admin.view.ts | 2 +- .../organization.service.abstraction.ts | 41 ++++--------------- 12 files changed, 37 insertions(+), 109 deletions(-) diff --git a/apps/web/src/app/admin-console/components/organization-switcher.component.ts b/apps/web/src/app/admin-console/components/organization-switcher.component.ts index a1c3cfd51da..daca58d601a 100644 --- a/apps/web/src/app/admin-console/components/organization-switcher.component.ts +++ b/apps/web/src/app/admin-console/components/organization-switcher.component.ts @@ -1,12 +1,11 @@ import { Component, Input, OnInit } from "@angular/core"; -import { Observable, switchMap } from "rxjs"; +import { map, Observable } from "rxjs"; import { canAccessAdmin, OrganizationService, } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; -import { ConfigServiceAbstraction } from "@bitwarden/common/platform/abstractions/config/config.service.abstraction"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { Utils } from "@bitwarden/common/platform/misc/utils"; @@ -15,11 +14,7 @@ import { Utils } from "@bitwarden/common/platform/misc/utils"; templateUrl: "organization-switcher.component.html", }) export class OrganizationSwitcherComponent implements OnInit { - constructor( - private organizationService: OrganizationService, - private i18nService: I18nService, - private configService: ConfigServiceAbstraction - ) {} + constructor(private organizationService: OrganizationService, private i18nService: I18nService) {} @Input() activeOrganization: Organization = null; organizations$: Observable; @@ -28,10 +23,8 @@ export class OrganizationSwitcherComponent implements OnInit { async ngOnInit() { this.organizations$ = this.organizationService.memberOrganizations$.pipe( - switchMap(async (orgs) => { - const canAccess = await canAccessAdmin(this.i18nService, this.configService); - return canAccess ? orgs.sort(Utils.getSortFunction(this.i18nService, "name")) : orgs; - }) + canAccessAdmin(this.i18nService), + map((orgs) => orgs.sort(Utils.getSortFunction(this.i18nService, "name"))) ); this.loaded = true; diff --git a/apps/web/src/app/admin-console/organizations/guards/org-permissions.guard.spec.ts b/apps/web/src/app/admin-console/organizations/guards/org-permissions.guard.spec.ts index c1707e67c1b..d599ce768df 100644 --- a/apps/web/src/app/admin-console/organizations/guards/org-permissions.guard.spec.ts +++ b/apps/web/src/app/admin-console/organizations/guards/org-permissions.guard.spec.ts @@ -9,7 +9,6 @@ import { mock, MockProxy } from "jest-mock-extended"; import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; import { OrganizationUserType } from "@bitwarden/common/admin-console/enums"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; -import { ConfigServiceAbstraction } from "@bitwarden/common/platform/abstractions/config/config.service.abstraction"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction"; @@ -53,8 +52,7 @@ describe("Organization Permissions Guard", () => { organizationService, mock(), mock(), - mock(), - mock() + mock() ); }); diff --git a/apps/web/src/app/admin-console/organizations/guards/org-permissions.guard.ts b/apps/web/src/app/admin-console/organizations/guards/org-permissions.guard.ts index 509b173c5a4..595f72ba86e 100644 --- a/apps/web/src/app/admin-console/organizations/guards/org-permissions.guard.ts +++ b/apps/web/src/app/admin-console/organizations/guards/org-permissions.guard.ts @@ -6,7 +6,6 @@ import { OrganizationService, } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; -import { ConfigServiceAbstraction } from "@bitwarden/common/platform/abstractions/config/config.service.abstraction"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction"; @@ -20,8 +19,7 @@ export class OrganizationPermissionsGuard implements CanActivate { private organizationService: OrganizationService, private platformUtilsService: PlatformUtilsService, private i18nService: I18nService, - private syncService: SyncService, - private configService: ConfigServiceAbstraction + private syncService: SyncService ) {} async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { @@ -44,12 +42,9 @@ export class OrganizationPermissionsGuard implements CanActivate { return this.router.createUrlTree(["/"]); } - const permissionsCallback: ( - organization: Organization, - configService: ConfigServiceAbstraction - ) => Promise = route.data?.organizationPermissions; - const hasPermissions = - permissionsCallback == null || (await permissionsCallback(org, this.configService)); + const permissionsCallback: (organization: Organization) => boolean = + route.data?.organizationPermissions; + const hasPermissions = permissionsCallback == null || permissionsCallback(org); if (!hasPermissions) { // Handle linkable ciphers for organizations the user only has view access to @@ -65,7 +60,7 @@ export class OrganizationPermissionsGuard implements CanActivate { } this.platformUtilsService.showToast("error", null, this.i18nService.t("accessDenied")); - return (await canAccessOrgAdmin(org, this.configService)) + return canAccessOrgAdmin(org) ? this.router.createUrlTree(["/organizations", org.id]) : this.router.createUrlTree(["/"]); } diff --git a/apps/web/src/app/admin-console/organizations/guards/org-redirect.guard.ts b/apps/web/src/app/admin-console/organizations/guards/org-redirect.guard.ts index 6efe46691c3..bd496e79ecb 100644 --- a/apps/web/src/app/admin-console/organizations/guards/org-redirect.guard.ts +++ b/apps/web/src/app/admin-console/organizations/guards/org-redirect.guard.ts @@ -5,31 +5,26 @@ import { canAccessOrgAdmin, OrganizationService, } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; -import { ConfigServiceAbstraction } from "@bitwarden/common/platform/abstractions/config/config.service.abstraction"; @Injectable({ providedIn: "root", }) export class OrganizationRedirectGuard implements CanActivate { - constructor( - private router: Router, - private organizationService: OrganizationService, - private configService: ConfigServiceAbstraction - ) {} + constructor(private router: Router, private organizationService: OrganizationService) {} async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { const org = this.organizationService.get(route.params.organizationId); const customRedirect = route.data?.autoRedirectCallback; if (customRedirect) { - let redirectPath = await customRedirect(org, this.configService); + let redirectPath = customRedirect(org); if (typeof redirectPath === "string") { redirectPath = [redirectPath]; } return this.router.createUrlTree([state.url, ...redirectPath]); } - if (await canAccessOrgAdmin(org, this.configService)) { + if (canAccessOrgAdmin(org)) { return this.router.createUrlTree(["/organizations", org.id]); } return this.router.createUrlTree(["/"]); diff --git a/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.html b/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.html index e75da035787..0d537a4b2a3 100644 --- a/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.html +++ b/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.html @@ -7,7 +7,7 @@ [activeOrganization]="organization" > - {{ + {{ "vault" | i18n }} {{ diff --git a/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.ts b/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.ts index 1f59e8bd9a8..a0a7df5a92d 100644 --- a/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.ts +++ b/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.ts @@ -13,8 +13,6 @@ import { OrganizationService, } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; -import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; -import { ConfigServiceAbstraction } from "@bitwarden/common/platform/abstractions/config/config.service.abstraction"; @Component({ selector: "app-organization-layout", @@ -24,21 +22,12 @@ export class OrganizationLayoutComponent implements OnInit, OnDestroy { organization$: Observable; private _destroy = new Subject(); - private flexibleCollectionsEnabled: boolean; - constructor( - private route: ActivatedRoute, - private organizationService: OrganizationService, - private configService: ConfigServiceAbstraction - ) {} + constructor(private route: ActivatedRoute, private organizationService: OrganizationService) {} - async ngOnInit() { + ngOnInit() { document.body.classList.remove("layout_frontend"); - this.flexibleCollectionsEnabled = await this.configService.getFeatureFlag( - FeatureFlag.FlexibleCollections - ); - this.organization$ = this.route.params .pipe(takeUntil(this._destroy)) .pipe(map((p) => p.organizationId)) @@ -56,8 +45,8 @@ export class OrganizationLayoutComponent implements OnInit, OnDestroy { this._destroy.complete(); } - async canShowVaultTab(organization: Organization): Promise { - return await canAccessVaultTab(organization, this.configService); + canShowVaultTab(organization: Organization): boolean { + return canAccessVaultTab(organization); } canShowSettingsTab(organization: Organization): boolean { diff --git a/apps/web/src/app/admin-console/organizations/organization-routing.module.ts b/apps/web/src/app/admin-console/organizations/organization-routing.module.ts index c95f9a37327..7e21fb8dfad 100644 --- a/apps/web/src/app/admin-console/organizations/organization-routing.module.ts +++ b/apps/web/src/app/admin-console/organizations/organization-routing.module.ts @@ -11,7 +11,6 @@ import { canAccessSettingsTab, } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; -import { ConfigServiceAbstraction } from "@bitwarden/common/platform/abstractions/config/config.service.abstraction"; import { OrganizationPermissionsGuard } from "../../admin-console/organizations/guards/org-permissions.guard"; import { OrganizationRedirectGuard } from "../../admin-console/organizations/guards/org-redirect.guard"; @@ -80,11 +79,8 @@ const routes: Routes = [ }, ]; -async function getOrganizationRoute( - organization: Organization, - configService: ConfigServiceAbstraction -): Promise { - if (await canAccessVaultTab(organization, configService)) { +function getOrganizationRoute(organization: Organization): string { + if (canAccessVaultTab(organization)) { return "vault"; } if (canAccessMembersTab(organization)) { diff --git a/apps/web/src/app/layouts/navbar.component.html b/apps/web/src/app/layouts/navbar.component.html index b1202199fac..cecd5599abd 100644 --- a/apps/web/src/app/layouts/navbar.component.html +++ b/apps/web/src/app/layouts/navbar.component.html @@ -22,15 +22,9 @@ class="nav-item" routerLinkActive="active" > - - - {{ "organizations" | i18n }} - - + {{ + "organizations" | i18n + }}