From 5e2e0dda8e928057dfad14dd7be78c554d09941f Mon Sep 17 00:00:00 2001 From: Patrick Pimentel Date: Wed, 28 May 2025 10:56:16 -0400 Subject: [PATCH] feat(change-password-component): Change Password Update [18720] - Adding more content for the routing. --- apps/browser/src/popup/app-routing.module.ts | 1 - apps/desktop/src/app/app-routing.module.ts | 17 ++++++++++++++++- apps/web/src/app/oss-routing.module.ts | 1 + libs/angular/src/auth/guards/auth.guard.ts | 13 ++++++++----- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/apps/browser/src/popup/app-routing.module.ts b/apps/browser/src/popup/app-routing.module.ts index 691cbc249fa..8459cb933d6 100644 --- a/apps/browser/src/popup/app-routing.module.ts +++ b/apps/browser/src/popup/app-routing.module.ts @@ -556,7 +556,6 @@ const routes: Routes = [ showBackButton: true, } satisfies RouteDataProperties & ExtensionAnonLayoutWrapperData, }, - // TODO: Should this have any guards? { path: "change-password", data: { diff --git a/apps/desktop/src/app/app-routing.module.ts b/apps/desktop/src/app/app-routing.module.ts index 938edafddd4..5f308af8a83 100644 --- a/apps/desktop/src/app/app-routing.module.ts +++ b/apps/desktop/src/app/app-routing.module.ts @@ -14,6 +14,7 @@ import { tdeDecryptionRequiredGuard, unauthGuardFn, } from "@bitwarden/angular/auth/guards"; +import { canAccessFeature } from "@bitwarden/angular/platform/guard/feature-flag.guard"; import { featureFlaggedRoute } from "@bitwarden/angular/platform/utils/feature-flagged-route"; import { AnonLayoutWrapperComponent, @@ -40,6 +41,7 @@ import { TwoFactorAuthGuard, NewDeviceVerificationComponent, DeviceVerificationIcon, + ChangePasswordComponent, } from "@bitwarden/auth/angular"; import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; import { LockComponent } from "@bitwarden/key-management-ui"; @@ -119,7 +121,15 @@ const routes: Routes = [ { path: "update-temp-password", component: UpdateTempPasswordComponent, - canActivate: [authGuard], + canActivate: [ + canAccessFeature( + FeatureFlag.PM16117_ChangeExistingPasswordRefactor, + false, + `/change-password`, + false, + ), + authGuard, + ], }, { path: "remove-password", @@ -323,6 +333,11 @@ const routes: Routes = [ }, } satisfies RouteDataProperties & AnonLayoutWrapperData, }, + { + path: "change-password", + component: ChangePasswordComponent, + // canActivate: [authGuard], + }, ], }, ]; diff --git a/apps/web/src/app/oss-routing.module.ts b/apps/web/src/app/oss-routing.module.ts index 6bcaed12d3c..3793ab58157 100644 --- a/apps/web/src/app/oss-routing.module.ts +++ b/apps/web/src/app/oss-routing.module.ts @@ -601,6 +601,7 @@ const routes: Routes = [ { path: "change-password", component: ChangePasswordComponent, + // canActivate: [authGuard], }, ], }, diff --git a/libs/angular/src/auth/guards/auth.guard.ts b/libs/angular/src/auth/guards/auth.guard.ts index 690db37d090..d56a4186f3b 100644 --- a/libs/angular/src/auth/guards/auth.guard.ts +++ b/libs/angular/src/auth/guards/auth.guard.ts @@ -65,11 +65,14 @@ export const authGuard: CanActivateFn = async ( return router.createUrlTree(["/set-password"]); } - if ( - forceSetPasswordReason !== ForceSetPasswordReason.None && - !routerState.url.includes("update-temp-password") - ) { - return router.createUrlTree(["/update-temp-password"]); + if (forceSetPasswordReason !== ForceSetPasswordReason.None) { + if (!routerState.url.includes("update-temp-password")) { + return router.createUrlTree(["/update-temp-password"]); + } + + if (!routerState.url.includes("change-password")) { + return router.createUrlTree(["/change-password"]); + } } return true;