From 074bf9de5f8f505a4b09c99ba9e8721ef4325d14 Mon Sep 17 00:00:00 2001 From: sumeyye Date: Fri, 3 Apr 2026 08:55:47 +0300 Subject: [PATCH] update: permission guard to find the matching url --- .../core/src/lib/guards/permission.guard.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts b/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts index 41e07f8d1b..a6ae040597 100644 --- a/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts +++ b/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts @@ -10,8 +10,14 @@ import { HttpErrorResponse } from '@angular/common/http'; import { Observable, of } from 'rxjs'; import { filter, map, switchMap, take } from 'rxjs/operators'; import { AuthService, IAbpGuard } from '../abstracts'; -import { findRoute, getRoutePath } from '../utils/route-utils'; -import { RoutesService, PermissionService, HttpErrorReporterService, ConfigStateService } from '../services'; +import { findRoute } from '../utils/route-utils'; +import { + RoutesService, + PermissionService, + HttpErrorReporterService, + ConfigStateService, + RouteBasedCultureUrlService, +} from '../services'; import { isPlatformServer } from '@angular/common'; /** * @deprecated Use `permissionGuard` *function* instead. @@ -26,12 +32,16 @@ export class PermissionGuard implements IAbpGuard { protected readonly permissionService = inject(PermissionService); protected readonly httpErrorReporter = inject(HttpErrorReporterService); protected readonly configStateService = inject(ConfigStateService); + protected readonly routeCultureUrl = inject(RouteBasedCultureUrlService); canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { let { requiredPolicy } = route.data || {}; if (!requiredPolicy) { - const routeFound = findRoute(this.routesService, getRoutePath(this.router, state.url)); + const routeFound = findRoute( + this.routesService, + this.routeCultureUrl.getRoutePathForMatching(this.router, state.url), + ); requiredPolicy = routeFound?.requiredPolicy; } @@ -70,12 +80,13 @@ export const permissionGuard: CanActivateFn = ( const permissionService = inject(PermissionService); const httpErrorReporter = inject(HttpErrorReporterService); const configStateService = inject(ConfigStateService); + const routeCultureUrl = inject(RouteBasedCultureUrlService); const platformId = inject(PLATFORM_ID); let { requiredPolicy } = route.data || {}; if (!requiredPolicy) { - const routeFound = findRoute(routesService, getRoutePath(router, state.url)); + const routeFound = findRoute(routesService, routeCultureUrl.getRoutePathForMatching(router, state.url)); requiredPolicy = routeFound?.requiredPolicy; }