@mediusinc/mng-commons 6.0.0-rc.7 → 6.0.0
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);
|