mirror of
https://github.com/bitwarden/browser
synced 2025-12-16 16:23:44 +00:00
[PM-4348] Migrate AuthGuards to functions (#9595)
* Migrate auth guards * Fix remaining auth guard migration * Fix unauth guard usage * Add unit tests for auth guard and unauth guard * Remove unused angular DI code * Move auth related logic out fo sm guard * Add tests * Add more tests for unauth guard * Fix incorrect merge
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { NgModule } from "@angular/core";
|
||||
import { RouterModule, Routes } from "@angular/router";
|
||||
|
||||
import { AuthGuard } from "@bitwarden/angular/auth/guards";
|
||||
import { authGuard } from "@bitwarden/angular/auth/guards";
|
||||
import { canAccessSettingsTab } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||
import { isEnterpriseOrgGuard } from "@bitwarden/web-vault/app/admin-console/organizations/guards/is-enterprise-org.guard";
|
||||
import { organizationPermissionsGuard } from "@bitwarden/web-vault/app/admin-console/organizations/guards/org-permissions.guard";
|
||||
@@ -16,7 +16,7 @@ const routes: Routes = [
|
||||
{
|
||||
path: "organizations/:organizationId",
|
||||
component: OrganizationLayoutComponent,
|
||||
canActivate: [AuthGuard, organizationPermissionsGuard()],
|
||||
canActivate: [authGuard, organizationPermissionsGuard()],
|
||||
children: [
|
||||
{
|
||||
path: "settings",
|
||||
@@ -61,7 +61,7 @@ const routes: Routes = [
|
||||
},
|
||||
{
|
||||
path: "reporting/reports",
|
||||
canActivate: [AuthGuard, organizationPermissionsGuard((org) => org.canAccessReports)],
|
||||
canActivate: [authGuard, organizationPermissionsGuard((org) => org.canAccessReports)],
|
||||
children: [
|
||||
{
|
||||
path: "member-access-report",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { NgModule } from "@angular/core";
|
||||
import { RouterModule, Routes } from "@angular/router";
|
||||
|
||||
import { AuthGuard } from "@bitwarden/angular/auth/guards";
|
||||
import { authGuard } from "@bitwarden/angular/auth/guards";
|
||||
import { featureFlaggedRoute } from "@bitwarden/angular/platform/utils/feature-flagged-route";
|
||||
import { AnonLayoutWrapperComponent } from "@bitwarden/auth/angular";
|
||||
import { Provider } from "@bitwarden/common/admin-console/models/domain/provider";
|
||||
@@ -32,12 +32,12 @@ import { SetupComponent } from "./setup/setup.component";
|
||||
const routes: Routes = [
|
||||
{
|
||||
path: "",
|
||||
canActivate: [AuthGuard],
|
||||
canActivate: [authGuard],
|
||||
component: UserLayoutComponent,
|
||||
children: [
|
||||
{
|
||||
path: "",
|
||||
canActivate: [AuthGuard],
|
||||
canActivate: [authGuard],
|
||||
component: ProvidersComponent,
|
||||
data: { titleId: "providers" },
|
||||
},
|
||||
@@ -70,7 +70,7 @@ const routes: Routes = [
|
||||
},
|
||||
{
|
||||
path: "",
|
||||
canActivate: [AuthGuard],
|
||||
canActivate: [authGuard],
|
||||
children: [
|
||||
{
|
||||
path: "setup",
|
||||
|
||||
@@ -6,10 +6,7 @@ import {
|
||||
RouterStateSnapshot,
|
||||
} from "@angular/router";
|
||||
|
||||
import { AuthGuard } from "@bitwarden/angular/auth/guards";
|
||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||
import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service";
|
||||
import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status";
|
||||
import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction";
|
||||
|
||||
/**
|
||||
@@ -20,19 +17,13 @@ export const canActivateSM: CanActivateFn = async (
|
||||
state: RouterStateSnapshot,
|
||||
) => {
|
||||
const syncService = inject(SyncService);
|
||||
const authService = inject(AuthService);
|
||||
const orgService = inject(OrganizationService);
|
||||
const authGuard = inject(AuthGuard);
|
||||
|
||||
/** Workaround to avoid service initialization race condition. */
|
||||
if ((await syncService.getLastSync()) == null) {
|
||||
await syncService.fullSync(false);
|
||||
}
|
||||
|
||||
if ((await authService.getAuthStatus()) !== AuthenticationStatus.Unlocked) {
|
||||
return authGuard.canActivate(route, state);
|
||||
}
|
||||
|
||||
const orgs = await orgService.getAll();
|
||||
const smOrg = orgs.find((o) => o.canAccessSecretsManager);
|
||||
if (smOrg) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { NgModule } from "@angular/core";
|
||||
import { RouterModule, Routes } from "@angular/router";
|
||||
|
||||
import { AuthGuard } from "@bitwarden/angular/auth/guards";
|
||||
import { authGuard } from "@bitwarden/angular/auth/guards";
|
||||
|
||||
import { organizationEnabledGuard } from "./guards/sm-org-enabled.guard";
|
||||
import { canActivateSM } from "./guards/sm.guard";
|
||||
@@ -22,14 +22,14 @@ const routes: Routes = [
|
||||
children: [
|
||||
{
|
||||
path: "",
|
||||
canActivate: [canActivateSM],
|
||||
canActivate: [authGuard, canActivateSM],
|
||||
pathMatch: "full",
|
||||
children: [],
|
||||
},
|
||||
{
|
||||
path: ":organizationId",
|
||||
component: LayoutComponent,
|
||||
canActivate: [AuthGuard],
|
||||
canActivate: [authGuard],
|
||||
children: [
|
||||
{
|
||||
path: "",
|
||||
|
||||
Reference in New Issue
Block a user