@mediusinc/mng-commons 6.0.0-rc.7 → 6.0.0-rc.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { ActivatedRouteSnapshot } from '@angular/router';
1
+ import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
2
2
  import { Observable } from 'rxjs';
3
3
  import { CommonsMenuItem } from '../models/menu.model';
4
4
  import { APermissions, IActionContextValidation } from './permissions.model';
@@ -8,7 +8,7 @@ export declare class PermissionService {
8
8
  private readonly commons;
9
9
  private readonly logger;
10
10
  private userRoles$;
11
- canActivateRoute(permissions: APermissions, route?: ActivatedRouteSnapshot): Observable<boolean>;
11
+ canActivateRoute(permissions: APermissions, route?: ActivatedRouteSnapshot, state?: RouterStateSnapshot): Observable<boolean>;
12
12
  private canActivateRouteAll;
13
13
  private canActivateRouteAny;
14
14
  private canActivateRouteService;
@@ -16,7 +16,7 @@ export declare class PermissionService {
16
16
  private isMenuItemVisibleAll;
17
17
  private isMenuItemVisibleAny;
18
18
  private isMenuItemVisibleService;
19
- isActionVisible(permissions: APermissions, actionCtx?: IActionContextValidation<any, any>, route?: ActivatedRouteSnapshot): Observable<boolean>;
19
+ isActionVisible(permissions: APermissions, actionCtx?: IActionContextValidation<any, any>, route?: ActivatedRouteSnapshot, state?: RouterStateSnapshot): Observable<boolean>;
20
20
  private isActionVisibleAll;
21
21
  private isActionVisibleAny;
22
22
  private isActionVisibleService;
@@ -1,5 +1,5 @@
1
1
  import { Type } from '@angular/core';
2
- import { ActivatedRouteSnapshot } from '@angular/router';
2
+ import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
3
3
  import { Observable } from 'rxjs';
4
4
  import { ActionParameters } from '../action/action-parameters.model';
5
5
  import { IDataProvider } from '../data-providers/base.data-provider';
@@ -22,10 +22,11 @@ export interface IPermissionService {
22
22
  * Determines whether a route can be activated.
23
23
  *
24
24
  * @param {ActivatedRouteSnapshot} route - The route snapshot object representing the current route for activation.
25
+ * @param {RouterStateSnapshot} state - The router state snapshot
25
26
  *
26
27
  * @returns {Observable<boolean>} - An observable that emits a boolean value indicating whether the route can be activated.
27
28
  */
28
- canActivateRoute(route?: ActivatedRouteSnapshot): Observable<boolean>;
29
+ canActivateRoute(route?: ActivatedRouteSnapshot, state?: RouterStateSnapshot): Observable<boolean>;
29
30
  /**
30
31
  * Determines the visibility of menu item.
31
32
  *
@@ -39,10 +40,11 @@ export interface IPermissionService {
39
40
  *
40
41
  * @param {IActionContextValidation<any, any>} [actionCtx] - The action context object containing the necessary information for validation.
41
42
  * @param {ActivatedRouteSnapshot} [route] - The current route snapshot containing the necessary information for validation.
43
+ * @param {RouterStateSnapshot} state - The router state snapshot
42
44
  *
43
45
  * @return {Observable<boolean>} - An Observable that emits the visibility status of the action.
44
46
  */
45
- isActionVisible(actionCtx?: IActionContextValidation<any, any>, route?: ActivatedRouteSnapshot): Observable<boolean>;
47
+ isActionVisible(actionCtx?: IActionContextValidation<any, any>, route?: ActivatedRouteSnapshot, state?: RouterStateSnapshot): Observable<boolean>;
46
48
  }
47
49
  export declare abstract class APermissions {
48
50
  private readonly _authorizationType;
@@ -2832,31 +2832,31 @@ class PermissionService {
2832
2832
  this.logger = inject(LoggerService).create('AuthorizationService');
2833
2833
  this.userRoles$ = toObservable$1(this.commons.userRoles);
2834
2834
  }
2835
- canActivateRoute(permissions, route) {
2835
+ canActivateRoute(permissions, route, state) {
2836
2836
  switch (permissions.authorizationType) {
2837
2837
  case PermissionTypeEnum.All:
2838
- return this.canActivateRouteAll(permissions, route);
2838
+ return this.canActivateRouteAll(permissions, route, state);
2839
2839
  case PermissionTypeEnum.Any:
2840
- return this.canActivateRouteAny(permissions, route);
2840
+ return this.canActivateRouteAny(permissions, route, state);
2841
2841
  case PermissionTypeEnum.Service:
2842
- return this.canActivateRouteService(permissions, route);
2842
+ return this.canActivateRouteService(permissions, route, state);
2843
2843
  default:
2844
2844
  return this.userRoles$.pipe(map(ur => isPermitted(permissions, ur)));
2845
2845
  }
2846
2846
  }
2847
- canActivateRouteAll(permission, route) {
2848
- return combineLatest(permission.permissions.map(p => this.canActivateRoute(p, route))).pipe(map(res => res.every(ip => ip === true)));
2847
+ canActivateRouteAll(permission, route, state) {
2848
+ return combineLatest(permission.permissions.map(p => this.canActivateRoute(p, route, state))).pipe(map(res => res.every(ip => ip === true)));
2849
2849
  }
2850
- canActivateRouteAny(permissions, route) {
2851
- return combineLatest(permissions.permissions.map(p => this.canActivateRoute(p, route))).pipe(map(res => res.some(ip => ip === true)));
2850
+ canActivateRouteAny(permissions, route, state) {
2851
+ return combineLatest(permissions.permissions.map(p => this.canActivateRoute(p, route, state))).pipe(map(res => res.some(ip => ip === true)));
2852
2852
  }
2853
- canActivateRouteService(permission, route) {
2853
+ canActivateRouteService(permission, route, state) {
2854
2854
  const serviceInstance = this.injector.get(permission.service);
2855
2855
  if (!serviceInstance) {
2856
2856
  this.logger.debug(`WARNING: Service instance could not be retrieved for type ${permission.service}`);
2857
2857
  return of(false);
2858
2858
  }
2859
- return serviceInstance.canActivateRoute(route);
2859
+ return serviceInstance.canActivateRoute(route, state);
2860
2860
  }
2861
2861
  isMenuItemVisible(permissions, menuItem) {
2862
2862
  switch (permissions.authorizationType) {
@@ -2884,31 +2884,31 @@ class PermissionService {
2884
2884
  }
2885
2885
  return serviceInstance.isMenuitemVisible(menuItem);
2886
2886
  }
2887
- isActionVisible(permissions, actionCtx, route) {
2887
+ isActionVisible(permissions, actionCtx, route, state) {
2888
2888
  switch (permissions.authorizationType) {
2889
2889
  case PermissionTypeEnum.All:
2890
- return this.isActionVisibleAll(permissions, actionCtx, route);
2890
+ return this.isActionVisibleAll(permissions, actionCtx, route, state);
2891
2891
  case PermissionTypeEnum.Any:
2892
- return this.isActionVisibleAny(permissions, actionCtx, route);
2892
+ return this.isActionVisibleAny(permissions, actionCtx, route, state);
2893
2893
  case PermissionTypeEnum.Service:
2894
- return this.isActionVisibleService(permissions, actionCtx, route);
2894
+ return this.isActionVisibleService(permissions, actionCtx, route, state);
2895
2895
  default:
2896
2896
  return this.userRoles$.pipe(map(ur => isPermitted(permissions, ur)));
2897
2897
  }
2898
2898
  }
2899
- isActionVisibleAll(permission, actionCtx, route) {
2900
- return combineLatest(permission.permissions.map(p => this.isActionVisible(p, actionCtx, route))).pipe(map(res => res.every(ip => ip === true)));
2899
+ isActionVisibleAll(permission, actionCtx, route, state) {
2900
+ return combineLatest(permission.permissions.map(p => this.isActionVisible(p, actionCtx, route, state))).pipe(map(res => res.every(ip => ip === true)));
2901
2901
  }
2902
- isActionVisibleAny(permission, actionCtx, route) {
2903
- return combineLatest(permission.permissions.map(p => this.isActionVisible(p, actionCtx, route))).pipe(map(res => res.some(ip => ip === true)));
2902
+ isActionVisibleAny(permission, actionCtx, route, state) {
2903
+ return combineLatest(permission.permissions.map(p => this.isActionVisible(p, actionCtx, route, state))).pipe(map(res => res.some(ip => ip === true)));
2904
2904
  }
2905
- isActionVisibleService(permission, actionCtx, route) {
2905
+ isActionVisibleService(permission, actionCtx, route, state) {
2906
2906
  const serviceInstance = this.injector.get(permission.service);
2907
2907
  if (!serviceInstance) {
2908
2908
  this.logger.debug(`WARNING: Service instance could not be retreived for type ${permission.service}`);
2909
2909
  return of(false);
2910
2910
  }
2911
- return serviceInstance.isActionVisible(actionCtx, route);
2911
+ return serviceInstance.isActionVisible(actionCtx, route, state);
2912
2912
  }
2913
2913
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2914
2914
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PermissionService }); }
@@ -2917,11 +2917,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
2917
2917
  type: Injectable
2918
2918
  }] });
2919
2919
 
2920
- const permissionGuard = (route) => {
2920
+ const permissionGuard = (route, state) => {
2921
2921
  const permission = inject(PermissionService);
2922
2922
  const data = route.data;
2923
2923
  if (data.permissions) {
2924
- return permission.canActivateRoute(data.permissions, route).pipe(first());
2924
+ return permission.canActivateRoute(data.permissions, route, state).pipe(first());
2925
2925
  }
2926
2926
  else {
2927
2927
  return of(true);