@odx/auth 17.2.1 → 18.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.
- package/CHANGELOG.md +82 -0
- package/fesm2022/odx-auth-plugins-service-connect.mjs +3 -3
- package/fesm2022/odx-auth-plugins-service-connect.mjs.map +1 -1
- package/fesm2022/odx-auth.mjs +42 -42
- package/fesm2022/odx-auth.mjs.map +1 -1
- package/index.d.ts +744 -15
- package/package.json +4 -8
- package/plugins/service-connect/index.d.ts +184 -8
- package/esm2022/index.mjs +0 -16
- package/esm2022/lib/auth.component.mjs +0 -50
- package/esm2022/lib/auth.config.mjs +0 -71
- package/esm2022/lib/auth.directive.mjs +0 -51
- package/esm2022/lib/auth.guard.mjs +0 -44
- package/esm2022/lib/auth.i18n.mjs +0 -13
- package/esm2022/lib/auth.interceptor.mjs +0 -23
- package/esm2022/lib/auth.logger.mjs +0 -3
- package/esm2022/lib/auth.module.mjs +0 -19
- package/esm2022/lib/auth.providers.mjs +0 -136
- package/esm2022/lib/auth.service.mjs +0 -317
- package/esm2022/lib/auth.typings.mjs +0 -2
- package/esm2022/lib/components/auth-actions/auth-actions.component.mjs +0 -40
- package/esm2022/lib/components/auth-loading-screen/auth-loading-screen.component.mjs +0 -53
- package/esm2022/lib/components/index.mjs +0 -3
- package/esm2022/lib/directives/auth-action.directive.mjs +0 -30
- package/esm2022/lib/directives/index.mjs +0 -4
- package/esm2022/lib/directives/sign-in.directive.mjs +0 -52
- package/esm2022/lib/directives/sign-out.directive.mjs +0 -50
- package/esm2022/lib/helpers/create-auth-host-url.mjs +0 -18
- package/esm2022/lib/helpers/create-inititals.mjs +0 -32
- package/esm2022/lib/helpers/handle-auth-error.mjs +0 -31
- package/esm2022/lib/helpers/handle-oauth-event.mjs +0 -13
- package/esm2022/lib/helpers/index.mjs +0 -9
- package/esm2022/lib/helpers/resolve-email.mjs +0 -34
- package/esm2022/lib/helpers/resolve-username.mjs +0 -38
- package/esm2022/lib/helpers/set-http-auth-header.mjs +0 -22
- package/esm2022/lib/helpers/user-language-loader.mjs +0 -17
- package/esm2022/lib/models/auth-environment.mjs +0 -3
- package/esm2022/lib/models/auth-plugin-manager.mjs +0 -49
- package/esm2022/lib/models/authorized-handler.mjs +0 -2
- package/esm2022/lib/models/index.mjs +0 -5
- package/esm2022/lib/models/offline-auth-error-handler.mjs +0 -7
- package/esm2022/lib/plugins/core-debug.plugin.mjs +0 -29
- package/esm2022/lib/plugins/core-identity.plugin.mjs +0 -20
- package/esm2022/lib/plugins/index.mjs +0 -4
- package/esm2022/lib/plugins/user-profile-link.plugin.mjs +0 -18
- package/esm2022/lib/unauth.guard.mjs +0 -38
- package/esm2022/odx-auth.mjs +0 -5
- package/esm2022/plugins/service-connect/index.mjs +0 -9
- package/esm2022/plugins/service-connect/lib/dtos/get-service-connect-rights-response.dto.mjs +0 -2
- package/esm2022/plugins/service-connect/lib/dtos/get-service-connect-user-response.dto.mjs +0 -2
- package/esm2022/plugins/service-connect/lib/dtos/index.mjs +0 -3
- package/esm2022/plugins/service-connect/lib/helpers/build-service-connect-url.mjs +0 -16
- package/esm2022/plugins/service-connect/lib/helpers/has-roles-or-rights-handler.mjs +0 -12
- package/esm2022/plugins/service-connect/lib/helpers/has-roles-or-rights.mjs +0 -11
- package/esm2022/plugins/service-connect/lib/helpers/index.mjs +0 -5
- package/esm2022/plugins/service-connect/lib/helpers/service-connect-plugin-factory.mjs +0 -25
- package/esm2022/plugins/service-connect/lib/service-connect-rights.directive.mjs +0 -44
- package/esm2022/plugins/service-connect/lib/service-connect-rights.guard.mjs +0 -15
- package/esm2022/plugins/service-connect/lib/service-connect-rights.plugin.mjs +0 -16
- package/esm2022/plugins/service-connect/lib/service-connect-user-language.plugin.mjs +0 -34
- package/esm2022/plugins/service-connect/lib/service-connect-user-profile.plugin.mjs +0 -28
- package/esm2022/plugins/service-connect/lib/service-connect.config.mjs +0 -17
- package/esm2022/plugins/service-connect/odx-auth-plugins-service-connect.mjs +0 -5
- package/lib/auth.component.d.ts +0 -20
- package/lib/auth.config.d.ts +0 -84
- package/lib/auth.directive.d.ts +0 -25
- package/lib/auth.guard.d.ts +0 -11
- package/lib/auth.i18n.d.ts +0 -3
- package/lib/auth.interceptor.d.ts +0 -10
- package/lib/auth.logger.d.ts +0 -3
- package/lib/auth.module.d.ts +0 -10
- package/lib/auth.providers.d.ts +0 -46
- package/lib/auth.service.d.ts +0 -206
- package/lib/auth.typings.d.ts +0 -27
- package/lib/components/auth-actions/auth-actions.component.d.ts +0 -16
- package/lib/components/auth-loading-screen/auth-loading-screen.component.d.ts +0 -24
- package/lib/components/index.d.ts +0 -2
- package/lib/directives/auth-action.directive.d.ts +0 -18
- package/lib/directives/index.d.ts +0 -3
- package/lib/directives/sign-in.directive.d.ts +0 -29
- package/lib/directives/sign-out.directive.d.ts +0 -28
- package/lib/helpers/create-auth-host-url.d.ts +0 -14
- package/lib/helpers/create-inititals.d.ts +0 -18
- package/lib/helpers/handle-auth-error.d.ts +0 -13
- package/lib/helpers/handle-oauth-event.d.ts +0 -11
- package/lib/helpers/index.d.ts +0 -8
- package/lib/helpers/resolve-email.d.ts +0 -21
- package/lib/helpers/resolve-username.d.ts +0 -22
- package/lib/helpers/set-http-auth-header.d.ts +0 -11
- package/lib/helpers/user-language-loader.d.ts +0 -11
- package/lib/models/auth-environment.d.ts +0 -6
- package/lib/models/auth-plugin-manager.d.ts +0 -21
- package/lib/models/authorized-handler.d.ts +0 -3
- package/lib/models/index.d.ts +0 -4
- package/lib/models/offline-auth-error-handler.d.ts +0 -2
- package/lib/plugins/core-debug.plugin.d.ts +0 -11
- package/lib/plugins/core-identity.plugin.d.ts +0 -18
- package/lib/plugins/index.d.ts +0 -3
- package/lib/plugins/user-profile-link.plugin.d.ts +0 -18
- package/lib/unauth.guard.d.ts +0 -11
- package/plugins/service-connect/lib/dtos/get-service-connect-rights-response.dto.d.ts +0 -3
- package/plugins/service-connect/lib/dtos/get-service-connect-user-response.dto.d.ts +0 -14
- package/plugins/service-connect/lib/dtos/index.d.ts +0 -2
- package/plugins/service-connect/lib/helpers/build-service-connect-url.d.ts +0 -10
- package/plugins/service-connect/lib/helpers/has-roles-or-rights-handler.d.ts +0 -10
- package/plugins/service-connect/lib/helpers/has-roles-or-rights.d.ts +0 -11
- package/plugins/service-connect/lib/helpers/index.d.ts +0 -4
- package/plugins/service-connect/lib/helpers/service-connect-plugin-factory.d.ts +0 -20
- package/plugins/service-connect/lib/service-connect-rights.directive.d.ts +0 -21
- package/plugins/service-connect/lib/service-connect-rights.guard.d.ts +0 -11
- package/plugins/service-connect/lib/service-connect-rights.plugin.d.ts +0 -18
- package/plugins/service-connect/lib/service-connect-user-language.plugin.d.ts +0 -24
- package/plugins/service-connect/lib/service-connect-user-profile.plugin.d.ts +0 -23
- package/plugins/service-connect/lib/service-connect.config.d.ts +0 -15
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, inject } from '@angular/core';
|
|
2
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { of } from 'rxjs';
|
|
4
|
-
import logger from '../auth.logger';
|
|
5
|
-
/**
|
|
6
|
-
* A factory function that creates a core debug plugin for the authentication service.
|
|
7
|
-
* This plugin logs detailed information about the user's identity claims and tokens.
|
|
8
|
-
*
|
|
9
|
-
* @remarks
|
|
10
|
-
* This plugin is intended for debugging purposes only and should not be used in production environments.
|
|
11
|
-
*
|
|
12
|
-
* @returns {AuthPluginFactory} A function that takes an authentication service and sets up logging for identity claims and tokens.
|
|
13
|
-
*/
|
|
14
|
-
export const coreDebugPlugin = () => {
|
|
15
|
-
logger.warn('DEBUG MODE ENABLED - DO NOT USE IN PRODUCTION!');
|
|
16
|
-
const destroyRef = inject(DestroyRef);
|
|
17
|
-
let instance = null;
|
|
18
|
-
return (authService) => {
|
|
19
|
-
instance ??= authService.identityClaims$.pipe(takeUntilDestroyed(destroyRef)).subscribe((claims) => {
|
|
20
|
-
logger.info(`User: ${claims?.username} (${claims?.email})`);
|
|
21
|
-
logger.group('Identity claims', (log) => log(claims), false);
|
|
22
|
-
logger.group('Access token', (log) => log(authService.getAccessToken()));
|
|
23
|
-
logger.group('Refresh token', (log) => log(authService.getRefreshToken()));
|
|
24
|
-
logger.group('ID token', (log) => log(authService.getIdToken()));
|
|
25
|
-
});
|
|
26
|
-
return of({});
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kZWJ1Zy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2NvcmUtZGVidWcucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sTUFBTSxNQUFNLGdCQUFnQixDQUFDO0FBR3BDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFzQixHQUFHLEVBQUU7SUFDckQsTUFBTSxDQUFDLElBQUksQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQzlELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxJQUFJLFFBQVEsR0FBd0IsSUFBSSxDQUFDO0lBRXpDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNyQixRQUFRLEtBQUssV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNqRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsTUFBTSxFQUFFLFFBQVEsS0FBSyxNQUFNLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUM1RCxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMzRSxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vYXV0aC5sb2dnZXInO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG4vKipcbiAqIEEgZmFjdG9yeSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYSBjb3JlIGRlYnVnIHBsdWdpbiBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UuXG4gKiBUaGlzIHBsdWdpbiBsb2dzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VyJ3MgaWRlbnRpdHkgY2xhaW1zIGFuZCB0b2tlbnMuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgcGx1Z2luIGlzIGludGVuZGVkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgb25seSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLlxuICpcbiAqIEByZXR1cm5zIHtBdXRoUGx1Z2luRmFjdG9yeX0gQSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UgYW5kIHNldHMgdXAgbG9nZ2luZyBmb3IgaWRlbnRpdHkgY2xhaW1zIGFuZCB0b2tlbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBjb3JlRGVidWdQbHVnaW46IEF1dGhQbHVnaW5GYWN0b3J5ID0gKCkgPT4ge1xuICBsb2dnZXIud2FybignREVCVUcgTU9ERSBFTkFCTEVEIC0gRE8gTk9UIFVTRSBJTiBQUk9EVUNUSU9OIScpO1xuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBsZXQgaW5zdGFuY2U6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHJldHVybiAoYXV0aFNlcnZpY2UpID0+IHtcbiAgICBpbnN0YW5jZSA/Pz0gYXV0aFNlcnZpY2UuaWRlbnRpdHlDbGFpbXMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKGRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGNsYWltcykgPT4ge1xuICAgICAgbG9nZ2VyLmluZm8oYFVzZXI6ICR7Y2xhaW1zPy51c2VybmFtZX0gKCR7Y2xhaW1zPy5lbWFpbH0pYCk7XG4gICAgICBsb2dnZXIuZ3JvdXAoJ0lkZW50aXR5IGNsYWltcycsIChsb2cpID0+IGxvZyhjbGFpbXMpLCBmYWxzZSk7XG4gICAgICBsb2dnZXIuZ3JvdXAoJ0FjY2VzcyB0b2tlbicsIChsb2cpID0+IGxvZyhhdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpKSk7XG4gICAgICBsb2dnZXIuZ3JvdXAoJ1JlZnJlc2ggdG9rZW4nLCAobG9nKSA9PiBsb2coYXV0aFNlcnZpY2UuZ2V0UmVmcmVzaFRva2VuKCkpKTtcbiAgICAgIGxvZ2dlci5ncm91cCgnSUQgdG9rZW4nLCAobG9nKSA9PiBsb2coYXV0aFNlcnZpY2UuZ2V0SWRUb2tlbigpKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2Yoe30pO1xuICB9O1xufTtcbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { of } from 'rxjs';
|
|
2
|
-
import { injectAuthConfig } from '../auth.config';
|
|
3
|
-
/**
|
|
4
|
-
* Core identity plugin for authentication.
|
|
5
|
-
*
|
|
6
|
-
* This plugin extracts and processes identity claims from the authentication service.
|
|
7
|
-
*
|
|
8
|
-
* @returns {AuthPluginFactory} A factory function that returns an observable with the processed identity claims.
|
|
9
|
-
*/
|
|
10
|
-
export const coreIdentityPlugin = () => {
|
|
11
|
-
const { resolveEmail, resolveUsername, createInitials } = injectAuthConfig();
|
|
12
|
-
return (authService) => {
|
|
13
|
-
const claims = authService.getRawIdentityClaims();
|
|
14
|
-
if (!claims)
|
|
15
|
-
return of({});
|
|
16
|
-
const username = resolveUsername(claims);
|
|
17
|
-
return of({ email: resolveEmail(claims), username, initials: createInitials(username) });
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pZGVudGl0eS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2NvcmUtaWRlbnRpdHkucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFjbEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXNCLEdBQUcsRUFBRTtJQUN4RCxNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTdFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNyQixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgaW5pdGlhbHM6IHN0cmluZztcbiAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ29yZSBpZGVudGl0eSBwbHVnaW4gZm9yIGF1dGhlbnRpY2F0aW9uLlxuICpcbiAqIFRoaXMgcGx1Z2luIGV4dHJhY3RzIGFuZCBwcm9jZXNzZXMgaWRlbnRpdHkgY2xhaW1zIGZyb20gdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UuXG4gKlxuICogQHJldHVybnMge0F1dGhQbHVnaW5GYWN0b3J5fSBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9ic2VydmFibGUgd2l0aCB0aGUgcHJvY2Vzc2VkIGlkZW50aXR5IGNsYWltcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvcmVJZGVudGl0eVBsdWdpbjogQXV0aFBsdWdpbkZhY3RvcnkgPSAoKSA9PiB7XG4gIGNvbnN0IHsgcmVzb2x2ZUVtYWlsLCByZXNvbHZlVXNlcm5hbWUsIGNyZWF0ZUluaXRpYWxzIH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG5cbiAgcmV0dXJuIChhdXRoU2VydmljZSkgPT4ge1xuICAgIGNvbnN0IGNsYWltcyA9IGF1dGhTZXJ2aWNlLmdldFJhd0lkZW50aXR5Q2xhaW1zKCk7XG4gICAgaWYgKCFjbGFpbXMpIHJldHVybiBvZih7fSk7XG4gICAgY29uc3QgdXNlcm5hbWUgPSByZXNvbHZlVXNlcm5hbWUoY2xhaW1zKTtcblxuICAgIHJldHVybiBvZih7IGVtYWlsOiByZXNvbHZlRW1haWwoY2xhaW1zKSwgdXNlcm5hbWUsIGluaXRpYWxzOiBjcmVhdGVJbml0aWFscyh1c2VybmFtZSkgfSk7XG4gIH07XG59O1xuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './core-debug.plugin';
|
|
2
|
-
export * from './core-identity.plugin';
|
|
3
|
-
export * from './user-profile-link.plugin';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb3JlLWRlYnVnLnBsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUtaWRlbnRpdHkucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1wcm9maWxlLWxpbmsucGx1Z2luJztcbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { of } from 'rxjs';
|
|
2
|
-
import { ODX_AUTH_USER_PROFILE_HOSTS, injectAuthConfig } from '../auth.config';
|
|
3
|
-
/**
|
|
4
|
-
* A plugin factory that generates a user profile URL plugin.
|
|
5
|
-
*
|
|
6
|
-
* This plugin retrieves the user profile URL from the authentication configuration.
|
|
7
|
-
* If the user profile URL is not specified in the configuration, it falls back to
|
|
8
|
-
* using the default URL for the current environment from `ODX_AUTH_USER_PROFILE_HOSTS`.
|
|
9
|
-
*
|
|
10
|
-
* @returns A function that returns an observable emitting an object containing the user profile URL.
|
|
11
|
-
*/
|
|
12
|
-
export const userProfileUrlPlugin = () => {
|
|
13
|
-
const { environment, userProfileUrl } = injectAuthConfig();
|
|
14
|
-
return () => {
|
|
15
|
-
return of({ userProfileUrl: userProfileUrl ?? ODX_AUTH_USER_PROFILE_HOSTS[environment] });
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWxpbmsucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvcGx1Z2lucy91c2VyLXByb2ZpbGUtbGluay5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVkvRTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFzQixHQUFHLEVBQUU7SUFDMUQsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzNELE9BQU8sR0FBRyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsY0FBYyxJQUFJLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT0RYX0FVVEhfVVNFUl9QUk9GSUxFX0hPU1RTLCBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICB1c2VyUHJvZmlsZVVybDogc3RyaW5nO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEEgcGx1Z2luIGZhY3RvcnkgdGhhdCBnZW5lcmF0ZXMgYSB1c2VyIHByb2ZpbGUgVVJMIHBsdWdpbi5cbiAqXG4gKiBUaGlzIHBsdWdpbiByZXRyaWV2ZXMgdGhlIHVzZXIgcHJvZmlsZSBVUkwgZnJvbSB0aGUgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbi5cbiAqIElmIHRoZSB1c2VyIHByb2ZpbGUgVVJMIGlzIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIGl0IGZhbGxzIGJhY2sgdG9cbiAqIHVzaW5nIHRoZSBkZWZhdWx0IFVSTCBmb3IgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgZnJvbSBgT0RYX0FVVEhfVVNFUl9QUk9GSUxFX0hPU1RTYC5cbiAqXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYnNlcnZhYmxlIGVtaXR0aW5nIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSB1c2VyIHByb2ZpbGUgVVJMLlxuICovXG5leHBvcnQgY29uc3QgdXNlclByb2ZpbGVVcmxQbHVnaW46IEF1dGhQbHVnaW5GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCB7IGVudmlyb25tZW50LCB1c2VyUHJvZmlsZVVybCB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICByZXR1cm4gKCkgPT4ge1xuICAgIHJldHVybiBvZih7IHVzZXJQcm9maWxlVXJsOiB1c2VyUHJvZmlsZVVybCA/PyBPRFhfQVVUSF9VU0VSX1BST0ZJTEVfSE9TVFNbZW52aXJvbm1lbnRdIH0pO1xuICB9O1xufTtcbiJdfQ==
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { inject } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { WindowRef } from '@odx/angular';
|
|
4
|
-
import { isString } from '@odx/angular/utils';
|
|
5
|
-
import { map, take, tap } from 'rxjs';
|
|
6
|
-
import { AuthService } from './auth.service';
|
|
7
|
-
/**
|
|
8
|
-
* Guard function to prevent unauthorized access to routes.
|
|
9
|
-
*
|
|
10
|
-
* @param {AuthorizedHandler} authorizedHandler - Optional handler to check if the user is authorized.
|
|
11
|
-
* @param {any[] | string} redirectTo - Optional URL or route to redirect unauthorized users to. Can be a string or an array of strings.
|
|
12
|
-
* @param {boolean} isExternal - Optional flag to indicate if the redirection should be external. Defaults to false.
|
|
13
|
-
* @returns {CanActivateFn} - A function that implements the CanActivateFn interface.
|
|
14
|
-
*/
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
-
export function unauthGuard(authorizedHandler, redirectTo, isExternal = false) {
|
|
17
|
-
return (_) => {
|
|
18
|
-
const authService = inject(AuthService);
|
|
19
|
-
const router = inject(Router, { optional: true });
|
|
20
|
-
const windowRef = inject(WindowRef);
|
|
21
|
-
return authService.isAuthenticated$.pipe(map(() => !authService.isAuthorized(authorizedHandler)), tap((isUnauthorized) => {
|
|
22
|
-
if (isUnauthorized || !router)
|
|
23
|
-
return;
|
|
24
|
-
if (isString(redirectTo)) {
|
|
25
|
-
if (isExternal) {
|
|
26
|
-
windowRef.location.assign(redirectTo);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
router.navigateByUrl(redirectTo);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
else if (Array.isArray(redirectTo)) {
|
|
33
|
-
router.navigate(redirectTo);
|
|
34
|
-
}
|
|
35
|
-
}), take(1));
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRoLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvdW5hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDOzs7Ozs7O0dBT0c7QUFDSCw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxpQkFBcUMsRUFBRSxVQUEyQixFQUFFLFVBQVUsR0FBRyxLQUFLO0lBQ2hILE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNYLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQ3ZELEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3JCLElBQUksY0FBYyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3RDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ2YsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZUZuLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IG1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhvcml6ZWRIYW5kbGVyIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vKipcbiAqIEd1YXJkIGZ1bmN0aW9uIHRvIHByZXZlbnQgdW5hdXRob3JpemVkIGFjY2VzcyB0byByb3V0ZXMuXG4gKlxuICogQHBhcmFtIHtBdXRob3JpemVkSGFuZGxlcn0gYXV0aG9yaXplZEhhbmRsZXIgLSBPcHRpb25hbCBoYW5kbGVyIHRvIGNoZWNrIGlmIHRoZSB1c2VyIGlzIGF1dGhvcml6ZWQuXG4gKiBAcGFyYW0ge2FueVtdIHwgc3RyaW5nfSByZWRpcmVjdFRvIC0gT3B0aW9uYWwgVVJMIG9yIHJvdXRlIHRvIHJlZGlyZWN0IHVuYXV0aG9yaXplZCB1c2VycyB0by4gQ2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzRXh0ZXJuYWwgLSBPcHRpb25hbCBmbGFnIHRvIGluZGljYXRlIGlmIHRoZSByZWRpcmVjdGlvbiBzaG91bGQgYmUgZXh0ZXJuYWwuIERlZmF1bHRzIHRvIGZhbHNlLlxuICogQHJldHVybnMge0NhbkFjdGl2YXRlRm59IC0gQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgdGhlIENhbkFjdGl2YXRlRm4gaW50ZXJmYWNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIHVuYXV0aEd1YXJkKGF1dGhvcml6ZWRIYW5kbGVyPzogQXV0aG9yaXplZEhhbmRsZXIsIHJlZGlyZWN0VG8/OiBhbnlbXSB8IHN0cmluZywgaXNFeHRlcm5hbCA9IGZhbHNlKTogQ2FuQWN0aXZhdGVGbiB7XG4gIHJldHVybiAoXykgPT4ge1xuICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIGNvbnN0IHdpbmRvd1JlZiA9IGluamVjdChXaW5kb3dSZWYpO1xuXG4gICAgcmV0dXJuIGF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCQucGlwZShcbiAgICAgIG1hcCgoKSA9PiAhYXV0aFNlcnZpY2UuaXNBdXRob3JpemVkKGF1dGhvcml6ZWRIYW5kbGVyKSksXG4gICAgICB0YXAoKGlzVW5hdXRob3JpemVkKSA9PiB7XG4gICAgICAgIGlmIChpc1VuYXV0aG9yaXplZCB8fCAhcm91dGVyKSByZXR1cm47XG4gICAgICAgIGlmIChpc1N0cmluZyhyZWRpcmVjdFRvKSkge1xuICAgICAgICAgIGlmIChpc0V4dGVybmFsKSB7XG4gICAgICAgICAgICB3aW5kb3dSZWYubG9jYXRpb24uYXNzaWduKHJlZGlyZWN0VG8pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdFRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyZWRpcmVjdFRvKSkge1xuICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZShyZWRpcmVjdFRvKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YWtlKDEpLFxuICAgICk7XG4gIH07XG59XG4iXX0=
|
package/esm2022/odx-auth.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL29keC1hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './lib/dtos';
|
|
2
|
-
export * from './lib/helpers';
|
|
3
|
-
export * from './lib/service-connect-rights.directive';
|
|
4
|
-
export * from './lib/service-connect-rights.guard';
|
|
5
|
-
export * from './lib/service-connect-rights.plugin';
|
|
6
|
-
export * from './lib/service-connect-user-language.plugin';
|
|
7
|
-
export * from './lib/service-connect-user-profile.plugin';
|
|
8
|
-
export * from './lib/service-connect.config';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZHRvcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS1jb25uZWN0LXJpZ2h0cy5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC11c2VyLXByb2ZpbGUucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuIl19
|
package/esm2022/plugins/service-connect/lib/dtos/get-service-connect-rights-response.dto.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlcnZpY2UtY29ubmVjdC1yaWdodHMtcmVzcG9uc2UuZHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvZHRvcy9nZXQtc2VydmljZS1jb25uZWN0LXJpZ2h0cy1yZXNwb25zZS5kdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgR2V0U2VydmljZUNvbm5lY3RSaWdodHNSZXNwb25zZUR0byB7XG4gIHJpZ2h0czogc3RyaW5nW107XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlcnZpY2UtY29ubmVjdC11c2VyLXJlc3BvbnNlLmR0by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2R0b3MvZ2V0LXNlcnZpY2UtY29ubmVjdC11c2VyLXJlc3BvbnNlLmR0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB7XG4gIHVzZXJfaWQ6IHN0cmluZztcbiAgZmlyc3RfbmFtZTogc3RyaW5nO1xuICBsYXN0X25hbWU6IHN0cmluZztcbiAgbGFuZ3VhZ2VfY29kZTogc3RyaW5nO1xuICBwcmVmZXJyZWRfbGFuZ3VhZ2U6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBpbnN0aXR1dGlvbl9pZDogbnVtYmVyO1xuICBpbnN0aXR1dGlvbl9uYW1lOiBzdHJpbmc7XG4gIGluc3RpdHV0aW9uX25hbWVfMj86IHN0cmluZyB8IG51bGw7XG4gIGluc3RpdHV0aW9uX25hbWVfMz86IHN0cmluZyB8IG51bGw7XG4gIGFjY291bnRfbnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcbiAgaW5zdGl0dXRpb25fc2hvcnRuYW1lOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './get-service-connect-rights-response.dto';
|
|
2
|
-
export * from './get-service-connect-user-response.dto';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9kdG9zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2V0LXNlcnZpY2UtY29ubmVjdC1yaWdodHMtcmVzcG9uc2UuZHRvJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXNlcnZpY2UtY29ubmVjdC11c2VyLXJlc3BvbnNlLmR0byc7XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { buildUrl, isString } from '@odx/angular/utils';
|
|
2
|
-
import { ServiceConnectEnvironments } from '../service-connect.config';
|
|
3
|
-
/**
|
|
4
|
-
* Builds a service connect URL based on the provided environment and endpoints.
|
|
5
|
-
*
|
|
6
|
-
* @param {ServiceConnectEnvironment | AuthEnvironment} environment - The environment configuration which can be either a `ServiceConnectEnvironment` or `AuthEnvironment`.
|
|
7
|
-
* @param {string[]} endpoints - A list of endpoint strings to be appended to the base URL.
|
|
8
|
-
* @returns {string} - The constructed service connect URL as a string.
|
|
9
|
-
*/
|
|
10
|
-
export function buildServiceConnectUrl(environment, ...endpoints) {
|
|
11
|
-
if (isString(environment)) {
|
|
12
|
-
return buildUrl(ServiceConnectEnvironments[environment], ...endpoints);
|
|
13
|
-
}
|
|
14
|
-
return buildUrl(environment.custom, ...endpoints);
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtc2VydmljZS1jb25uZWN0LXVybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2hlbHBlcnMvYnVpbGQtc2VydmljZS1jb25uZWN0LXVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBNkIsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsV0FBd0QsRUFBRSxHQUFHLFNBQW1CO0lBQ3JILElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxRQUFRLENBQUMsMEJBQTBCLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBidWlsZFVybCwgaXNTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgQXV0aEVudmlyb25tZW50IH0gZnJvbSAnQG9keC9hdXRoJztcbmltcG9ydCB7IFNlcnZpY2VDb25uZWN0RW52aXJvbm1lbnQsIFNlcnZpY2VDb25uZWN0RW52aXJvbm1lbnRzIH0gZnJvbSAnLi4vc2VydmljZS1jb25uZWN0LmNvbmZpZyc7XG5cbi8qKlxuICogQnVpbGRzIGEgc2VydmljZSBjb25uZWN0IFVSTCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZW52aXJvbm1lbnQgYW5kIGVuZHBvaW50cy5cbiAqXG4gKiBAcGFyYW0ge1NlcnZpY2VDb25uZWN0RW52aXJvbm1lbnQgfCBBdXRoRW52aXJvbm1lbnR9IGVudmlyb25tZW50IC0gVGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gd2hpY2ggY2FuIGJlIGVpdGhlciBhIGBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50YCBvciBgQXV0aEVudmlyb25tZW50YC5cbiAqIEBwYXJhbSB7c3RyaW5nW119IGVuZHBvaW50cyAtIEEgbGlzdCBvZiBlbmRwb2ludCBzdHJpbmdzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBiYXNlIFVSTC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIGNvbnN0cnVjdGVkIHNlcnZpY2UgY29ubmVjdCBVUkwgYXMgYSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNlcnZpY2VDb25uZWN0VXJsKGVudmlyb25tZW50OiBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50IHwgQXV0aEVudmlyb25tZW50LCAuLi5lbmRwb2ludHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgaWYgKGlzU3RyaW5nKGVudmlyb25tZW50KSkge1xuICAgIHJldHVybiBidWlsZFVybChTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50c1tlbnZpcm9ubWVudF0sIC4uLmVuZHBvaW50cyk7XG4gIH1cbiAgcmV0dXJuIGJ1aWxkVXJsKGVudmlyb25tZW50LmN1c3RvbSwgLi4uZW5kcG9pbnRzKTtcbn1cbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { hasRolesOrRights } from './has-roles-or-rights';
|
|
2
|
-
/**
|
|
3
|
-
* Creates an authorized handler that checks if the user has the specified roles or rights.
|
|
4
|
-
*
|
|
5
|
-
* @param {RolesOrRights} rolesOrRights - The roles or rights to check against the user's claims.
|
|
6
|
-
* @returns {AuthorizedHandler} - An handler function that takes user claims and returns a boolean indicating
|
|
7
|
-
* whether the user has the required roles or rights.
|
|
8
|
-
*/
|
|
9
|
-
export function hasRolesOrRightsHandler(rolesOrRights) {
|
|
10
|
-
return (claims) => hasRolesOrRights(claims?.rights ?? [], rolesOrRights);
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLXJvbGVzLW9yLXJpZ2h0cy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvaGVscGVycy9oYXMtcm9sZXMtb3ItcmlnaHRzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLHVCQUF1QixDQUFDO0FBRXhFOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxhQUE0QjtJQUNsRSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUMzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXplZEhhbmRsZXIgfSBmcm9tICdAb2R4L2F1dGgnO1xuaW1wb3J0IHsgaGFzUm9sZXNPclJpZ2h0cywgUm9sZXNPclJpZ2h0cyB9IGZyb20gJy4vaGFzLXJvbGVzLW9yLXJpZ2h0cyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhdXRob3JpemVkIGhhbmRsZXIgdGhhdCBjaGVja3MgaWYgdGhlIHVzZXIgaGFzIHRoZSBzcGVjaWZpZWQgcm9sZXMgb3IgcmlnaHRzLlxuICpcbiAqIEBwYXJhbSB7Um9sZXNPclJpZ2h0c30gcm9sZXNPclJpZ2h0cyAtIFRoZSByb2xlcyBvciByaWdodHMgdG8gY2hlY2sgYWdhaW5zdCB0aGUgdXNlcidzIGNsYWltcy5cbiAqIEByZXR1cm5zIHtBdXRob3JpemVkSGFuZGxlcn0gLSBBbiBoYW5kbGVyIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdXNlciBjbGFpbXMgYW5kIHJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmdcbiAqICAgICAgICAgIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHRoZSByZXF1aXJlZCByb2xlcyBvciByaWdodHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNSb2xlc09yUmlnaHRzSGFuZGxlcihyb2xlc09yUmlnaHRzOiBSb2xlc09yUmlnaHRzKTogQXV0aG9yaXplZEhhbmRsZXIge1xuICByZXR1cm4gKGNsYWltcykgPT4gaGFzUm9sZXNPclJpZ2h0cyhjbGFpbXM/LnJpZ2h0cyA/PyBbXSwgcm9sZXNPclJpZ2h0cyk7XG59XG4iXX0=
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks if the user has any of the specified roles or rights.
|
|
3
|
-
*
|
|
4
|
-
* @param {Right[]} userRights - An array of rights that the user possesses.
|
|
5
|
-
* @param {RolesOrRights} rolesOrRights - An array of roles or rights to check against. A role is represented as an array of rights.
|
|
6
|
-
* @returns {boolean} - `true` if the user has any of the specified roles or rights, otherwise `false`.
|
|
7
|
-
*/
|
|
8
|
-
export function hasRolesOrRights(userRights, rolesOrRights) {
|
|
9
|
-
return rolesOrRights.some((rights) => (Array.isArray(rights) ? rights : [rights])?.every((right) => userRights.includes(right)));
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLXJvbGVzLW9yLXJpZ2h0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2hlbHBlcnMvaGFzLXJvbGVzLW9yLXJpZ2h0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBbUIsRUFBRSxhQUE0QjtJQUNoRixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUmlnaHQgPSBzdHJpbmcgfCBudW1iZXI7XG5leHBvcnQgdHlwZSBSb2xlID0gUmlnaHRbXTtcbmV4cG9ydCB0eXBlIFJvbGVzT3JSaWdodHMgPSBBcnJheTxSb2xlIHwgUmlnaHQ+O1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgdXNlciBoYXMgYW55IG9mIHRoZSBzcGVjaWZpZWQgcm9sZXMgb3IgcmlnaHRzLlxuICpcbiAqIEBwYXJhbSB7UmlnaHRbXX0gdXNlclJpZ2h0cyAtIEFuIGFycmF5IG9mIHJpZ2h0cyB0aGF0IHRoZSB1c2VyIHBvc3Nlc3Nlcy5cbiAqIEBwYXJhbSB7Um9sZXNPclJpZ2h0c30gcm9sZXNPclJpZ2h0cyAtIEFuIGFycmF5IG9mIHJvbGVzIG9yIHJpZ2h0cyB0byBjaGVjayBhZ2FpbnN0LiBBIHJvbGUgaXMgcmVwcmVzZW50ZWQgYXMgYW4gYXJyYXkgb2YgcmlnaHRzLlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gYHRydWVgIGlmIHRoZSB1c2VyIGhhcyBhbnkgb2YgdGhlIHNwZWNpZmllZCByb2xlcyBvciByaWdodHMsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzUm9sZXNPclJpZ2h0cyh1c2VyUmlnaHRzOiBSaWdodFtdLCByb2xlc09yUmlnaHRzOiBSb2xlc09yUmlnaHRzKTogYm9vbGVhbiB7XG4gIHJldHVybiByb2xlc09yUmlnaHRzLnNvbWUoKHJpZ2h0cykgPT4gKEFycmF5LmlzQXJyYXkocmlnaHRzKSA/IHJpZ2h0cyA6IFtyaWdodHNdKT8uZXZlcnkoKHJpZ2h0KSA9PiB1c2VyUmlnaHRzLmluY2x1ZGVzKHJpZ2h0KSkpO1xufVxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './build-service-connect-url';
|
|
2
|
-
export * from './has-roles-or-rights';
|
|
3
|
-
export * from './has-roles-or-rights-handler';
|
|
4
|
-
export * from './service-connect-plugin-factory';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1aWxkLXNlcnZpY2UtY29ubmVjdC11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9oYXMtcm9sZXMtb3ItcmlnaHRzJztcbmV4cG9ydCAqIGZyb20gJy4vaGFzLXJvbGVzLW9yLXJpZ2h0cy1oYW5kbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1jb25uZWN0LXBsdWdpbi1mYWN0b3J5JztcbiJdfQ==
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { HttpClient, HttpContext } from '@angular/common/http';
|
|
2
|
-
import { inject } from '@angular/core';
|
|
3
|
-
import { injectAuthConfig, requireAuthentication } from '@odx/auth';
|
|
4
|
-
import { defer, map } from 'rxjs';
|
|
5
|
-
import { buildServiceConnectUrl } from './build-service-connect-url';
|
|
6
|
-
/**
|
|
7
|
-
* Creates a plugin factory for fetching and parsing service connect data.
|
|
8
|
-
*
|
|
9
|
-
* @param {ServiceConnectPluginFactoryOptions<Dto>} options - The options for the service connect plugin factory.
|
|
10
|
-
* @returns {ServiceConnectPluginFactory} - A function that creates an auth plugin factory for fetching and parsing service connect data.
|
|
11
|
-
*/
|
|
12
|
-
export function serviceConnectPluginFactory(options) {
|
|
13
|
-
return (pluginOptions) => () => {
|
|
14
|
-
options.setup?.(pluginOptions);
|
|
15
|
-
const { environment } = injectAuthConfig();
|
|
16
|
-
const httpClient = inject(HttpClient);
|
|
17
|
-
const url = buildServiceConnectUrl(pluginOptions?.environment ?? environment, ...options.endpoint);
|
|
18
|
-
const parseResponse = (res) => ({
|
|
19
|
-
...(options.parseResponse(res) ?? options.defaultValue ?? {}),
|
|
20
|
-
...(pluginOptions?.additionalClaims?.(res) ?? {}),
|
|
21
|
-
});
|
|
22
|
-
return () => defer(() => httpClient.get(url, { context: new HttpContext().set(requireAuthentication, true) })).pipe(map((res) => parseResponse(res)));
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXBsdWdpbi1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvaGVscGVycy9zZXJ2aWNlLWNvbm5lY3QtcGx1Z2luLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkYsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFnQnJFOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUFnQixPQUFnRDtJQUN6RyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7UUFDN0IsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUM3RCxHQUFHLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLENBQUMsR0FBb0MsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuRixDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFNLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnksIGluamVjdEF1dGhDb25maWcsIHJlcXVpcmVBdXRoZW50aWNhdGlvbiB9IGZyb20gJ0BvZHgvYXV0aCc7XG5pbXBvcnQgeyBkZWZlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50IH0gZnJvbSAnLi4vc2VydmljZS1jb25uZWN0LmNvbmZpZyc7XG5pbXBvcnQgeyBidWlsZFNlcnZpY2VDb25uZWN0VXJsIH0gZnJvbSAnLi9idWlsZC1zZXJ2aWNlLWNvbm5lY3QtdXJsJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlQ29ubmVjdFBsdWdpbk9wdGlvbnM8RHRvID0gdW5rbm93bj4ge1xuICBlbnZpcm9ubWVudD86IFNlcnZpY2VDb25uZWN0RW52aXJvbm1lbnQ7XG4gIGFkZGl0aW9uYWxDbGFpbXM/OiAoZHRvOiAoRHRvICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHwgbnVsbCkgPT4gUGFydGlhbDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeU9wdGlvbnM8RHRvPiB7XG4gIGVuZHBvaW50OiBzdHJpbmdbXTtcbiAgcGFyc2VSZXNwb25zZTogKHJlczogRHRvIHwgbnVsbCkgPT4gUGFydGlhbDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQ+O1xuICBkZWZhdWx0VmFsdWU/OiBQYXJ0aWFsPE9keEF1dGguQXV0aFBsdWdpblJlc3VsdD47XG4gIHNldHVwPzogKHBsdWdpbk9wdGlvbnM/OiBTZXJ2aWNlQ29ubmVjdFBsdWdpbk9wdGlvbnM8RHRvPikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgU2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5PER0byA9IHVua25vd24+ID0gKHBsdWdpbk9wdGlvbnM/OiBTZXJ2aWNlQ29ubmVjdFBsdWdpbk9wdGlvbnM8RHRvPikgPT4gQXV0aFBsdWdpbkZhY3Rvcnk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHBsdWdpbiBmYWN0b3J5IGZvciBmZXRjaGluZyBhbmQgcGFyc2luZyBzZXJ2aWNlIGNvbm5lY3QgZGF0YS5cbiAqXG4gKiBAcGFyYW0ge1NlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeU9wdGlvbnM8RHRvPn0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgc2VydmljZSBjb25uZWN0IHBsdWdpbiBmYWN0b3J5LlxuICogQHJldHVybnMge1NlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeX0gLSBBIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhbiBhdXRoIHBsdWdpbiBmYWN0b3J5IGZvciBmZXRjaGluZyBhbmQgcGFyc2luZyBzZXJ2aWNlIGNvbm5lY3QgZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxEdG8gPSB1bmtub3duPihvcHRpb25zOiBTZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnlPcHRpb25zPER0bz4pOiBTZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3Rvcnk8RHRvPiB7XG4gIHJldHVybiAocGx1Z2luT3B0aW9ucykgPT4gKCkgPT4ge1xuICAgIG9wdGlvbnMuc2V0dXA/LihwbHVnaW5PcHRpb25zKTtcbiAgICBjb25zdCB7IGVudmlyb25tZW50IH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gICAgY29uc3QgaHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCB1cmwgPSBidWlsZFNlcnZpY2VDb25uZWN0VXJsKHBsdWdpbk9wdGlvbnM/LmVudmlyb25tZW50ID8/IGVudmlyb25tZW50LCAuLi5vcHRpb25zLmVuZHBvaW50KTtcbiAgICBjb25zdCBwYXJzZVJlc3BvbnNlID0gKHJlczogRHRvIHwgbnVsbCkgPT4gKHtcbiAgICAgIC4uLihvcHRpb25zLnBhcnNlUmVzcG9uc2UocmVzKSA/PyBvcHRpb25zLmRlZmF1bHRWYWx1ZSA/PyB7fSksXG4gICAgICAuLi4ocGx1Z2luT3B0aW9ucz8uYWRkaXRpb25hbENsYWltcz8uKHJlcyBhcyBEdG8gJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPz8ge30pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IGRlZmVyKCgpID0+IGh0dHBDbGllbnQuZ2V0PER0bz4odXJsLCB7IGNvbnRleHQ6IG5ldyBIdHRwQ29udGV4dCgpLnNldChyZXF1aXJlQXV0aGVudGljYXRpb24sIHRydWUpIH0pKS5waXBlKG1hcCgocmVzKSA9PiBwYXJzZVJlc3BvbnNlKHJlcykpKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Directive, inject, Input } from '@angular/core';
|
|
2
|
-
import { AuthDirective } from '@odx/auth';
|
|
3
|
-
import { hasRolesOrRightsHandler } from './helpers';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@odx/auth";
|
|
6
|
-
/**
|
|
7
|
-
* A directive that extends the functionality of the `AuthDirective` to handle
|
|
8
|
-
* roles or rights for service connection authorization.
|
|
9
|
-
*
|
|
10
|
-
* @see AuthDirective
|
|
11
|
-
*
|
|
12
|
-
* This directive should be used on an `ng-template` element with the selector
|
|
13
|
-
* `odxAuthServiceConnectRights`.
|
|
14
|
-
*/
|
|
15
|
-
export class ServiceConnectRightsDirective {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.authDirective = inject(AuthDirective, { host: true });
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Sets the roles or rights that the user must have to display the content.
|
|
21
|
-
*/
|
|
22
|
-
set rolesOrRights(value) {
|
|
23
|
-
this.authDirective.authorizationHandler = hasRolesOrRightsHandler(value ?? []);
|
|
24
|
-
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceConnectRightsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ServiceConnectRightsDirective, isStandalone: true, selector: "ng-template[odxAuthServiceConnectRights]", inputs: { rolesOrRights: ["odxAuthServiceConnectRights", "rolesOrRights"] }, hostDirectives: [{ directive: i1.AuthDirective, inputs: ["odxAuthElse", "odxAuthServiceConnectRightsElse"] }], ngImport: i0 }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceConnectRightsDirective, decorators: [{
|
|
29
|
-
type: Directive,
|
|
30
|
-
args: [{
|
|
31
|
-
standalone: true,
|
|
32
|
-
selector: 'ng-template[odxAuthServiceConnectRights]',
|
|
33
|
-
hostDirectives: [
|
|
34
|
-
{
|
|
35
|
-
directive: AuthDirective,
|
|
36
|
-
inputs: ['odxAuthElse:odxAuthServiceConnectRightsElse'],
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
}]
|
|
40
|
-
}], propDecorators: { rolesOrRights: [{
|
|
41
|
-
type: Input,
|
|
42
|
-
args: ['odxAuthServiceConnectRights']
|
|
43
|
-
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sV0FBVyxDQUFDOzs7QUFFbkU7Ozs7Ozs7O0dBUUc7QUFXSCxNQUFNLE9BQU8sNkJBQTZCO0lBVjFDO1FBV21CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBU3hFO0lBUEM7O09BRUc7SUFDSCxJQUNXLGFBQWEsQ0FBQyxLQUF1QztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixHQUFHLHVCQUF1QixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDOytHQVRVLDZCQUE2QjttR0FBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQVZ6QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxjQUFjLEVBQUU7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLGFBQWE7NEJBQ3hCLE1BQU0sRUFBRSxDQUFDLDZDQUE2QyxDQUFDO3lCQUN4RDtxQkFDRjtpQkFDRjs4QkFRWSxhQUFhO3NCQUR2QixLQUFLO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aERpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYXV0aCc7XG5pbXBvcnQgeyBoYXNSb2xlc09yUmlnaHRzSGFuZGxlciwgUm9sZXNPclJpZ2h0cyB9IGZyb20gJy4vaGVscGVycyc7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdGhhdCBleHRlbmRzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBgQXV0aERpcmVjdGl2ZWAgdG8gaGFuZGxlXG4gKiByb2xlcyBvciByaWdodHMgZm9yIHNlcnZpY2UgY29ubmVjdGlvbiBhdXRob3JpemF0aW9uLlxuICpcbiAqIEBzZWUgQXV0aERpcmVjdGl2ZVxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIHNob3VsZCBiZSB1c2VkIG9uIGFuIGBuZy10ZW1wbGF0ZWAgZWxlbWVudCB3aXRoIHRoZSBzZWxlY3RvclxuICogYG9keEF1dGhTZXJ2aWNlQ29ubmVjdFJpZ2h0c2AuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW29keEF1dGhTZXJ2aWNlQ29ubmVjdFJpZ2h0c10nLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogQXV0aERpcmVjdGl2ZSxcbiAgICAgIGlucHV0czogWydvZHhBdXRoRWxzZTpvZHhBdXRoU2VydmljZUNvbm5lY3RSaWdodHNFbHNlJ10sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZUNvbm5lY3RSaWdodHNEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhEaXJlY3RpdmUgPSBpbmplY3QoQXV0aERpcmVjdGl2ZSwgeyBob3N0OiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByb2xlcyBvciByaWdodHMgdGhhdCB0aGUgdXNlciBtdXN0IGhhdmUgdG8gZGlzcGxheSB0aGUgY29udGVudC5cbiAgICovXG4gIEBJbnB1dCgnb2R4QXV0aFNlcnZpY2VDb25uZWN0UmlnaHRzJylcbiAgcHVibGljIHNldCByb2xlc09yUmlnaHRzKHZhbHVlOiBSb2xlc09yUmlnaHRzIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuYXV0aERpcmVjdGl2ZS5hdXRob3JpemF0aW9uSGFuZGxlciA9IGhhc1JvbGVzT3JSaWdodHNIYW5kbGVyKHZhbHVlID8/IFtdKTtcbiAgfVxufVxuIl19
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { authGuard } from '@odx/auth';
|
|
2
|
-
import { hasRolesOrRightsHandler } from './helpers';
|
|
3
|
-
/**
|
|
4
|
-
* A guard function to check if the user has the required roles or rights to access a route.
|
|
5
|
-
*
|
|
6
|
-
* @param {RolesOrRights} rolesOrRights - The roles or rights required to access the route.
|
|
7
|
-
* @param {string | any[]} redirectTo - (Optional) The route to redirect to if the user does not have the required roles or rights.
|
|
8
|
-
* @param {boolean} isExternal - (Optional) A flag indicating if the redirection is to an external URL. Defaults to `false`.
|
|
9
|
-
* @returns {CanActivateFn} - A function that checks the user's roles or rights and handles redirection if necessary.
|
|
10
|
-
*/
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
-
export function serviceConnectRightsGuard(rolesOrRights, redirectTo, isExternal = false) {
|
|
13
|
-
return authGuard(hasRolesOrRightsHandler(rolesOrRights), redirectTo, isExternal);
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sV0FBVyxDQUFDO0FBRW5FOzs7Ozs7O0dBT0c7QUFDSCw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGFBQTRCLEVBQUUsVUFBMkIsRUFBRSxVQUFVLEdBQUcsS0FBSztJQUNySCxPQUFPLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbkFjdGl2YXRlRm4gfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXV0aEd1YXJkIH0gZnJvbSAnQG9keC9hdXRoJztcbmltcG9ydCB7IGhhc1JvbGVzT3JSaWdodHNIYW5kbGVyLCBSb2xlc09yUmlnaHRzIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuLyoqXG4gKiBBIGd1YXJkIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyB0aGUgcmVxdWlyZWQgcm9sZXMgb3IgcmlnaHRzIHRvIGFjY2VzcyBhIHJvdXRlLlxuICpcbiAqIEBwYXJhbSB7Um9sZXNPclJpZ2h0c30gcm9sZXNPclJpZ2h0cyAtIFRoZSByb2xlcyBvciByaWdodHMgcmVxdWlyZWQgdG8gYWNjZXNzIHRoZSByb3V0ZS5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgYW55W119IHJlZGlyZWN0VG8gLSAoT3B0aW9uYWwpIFRoZSByb3V0ZSB0byByZWRpcmVjdCB0byBpZiB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIHRoZSByZXF1aXJlZCByb2xlcyBvciByaWdodHMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzRXh0ZXJuYWwgLSAoT3B0aW9uYWwpIEEgZmxhZyBpbmRpY2F0aW5nIGlmIHRoZSByZWRpcmVjdGlvbiBpcyB0byBhbiBleHRlcm5hbCBVUkwuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gKiBAcmV0dXJucyB7Q2FuQWN0aXZhdGVGbn0gLSBBIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIHRoZSB1c2VyJ3Mgcm9sZXMgb3IgcmlnaHRzIGFuZCBoYW5kbGVzIHJlZGlyZWN0aW9uIGlmIG5lY2Vzc2FyeS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlQ29ubmVjdFJpZ2h0c0d1YXJkKHJvbGVzT3JSaWdodHM6IFJvbGVzT3JSaWdodHMsIHJlZGlyZWN0VG8/OiBzdHJpbmcgfCBhbnlbXSwgaXNFeHRlcm5hbCA9IGZhbHNlKTogQ2FuQWN0aXZhdGVGbiB7XG4gIHJldHVybiBhdXRoR3VhcmQoaGFzUm9sZXNPclJpZ2h0c0hhbmRsZXIocm9sZXNPclJpZ2h0cyksIHJlZGlyZWN0VG8sIGlzRXh0ZXJuYWwpO1xufVxuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { serviceConnectPluginFactory } from './helpers';
|
|
2
|
-
import { ServiceConnectEndpoints } from './service-connect.config';
|
|
3
|
-
/**
|
|
4
|
-
* A plugin for fetching and parsing service connect rights.
|
|
5
|
-
*
|
|
6
|
-
* This plugin uses the `serviceConnectPluginFactory` to create a plugin that fetches user rights
|
|
7
|
-
* from the specified endpoint and parses the response to extract the rights.
|
|
8
|
-
*
|
|
9
|
-
* @see {serviceConnectPluginFactory}
|
|
10
|
-
*/
|
|
11
|
-
export const serviceConnectRightsPlugin = serviceConnectPluginFactory({
|
|
12
|
-
endpoint: [ServiceConnectEndpoints.userRights],
|
|
13
|
-
parseResponse: (res) => ({ rights: res?.rights ?? [] }),
|
|
14
|
-
defaultValue: { rights: [] },
|
|
15
|
-
});
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVMsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFXbkU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLDJCQUEyQixDQUFxQztJQUN4RyxRQUFRLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUM7SUFDOUMsYUFBYSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdkQsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtDQUM3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZXRTZXJ2aWNlQ29ubmVjdFJpZ2h0c1Jlc3BvbnNlRHRvIH0gZnJvbSAnLi9kdG9zJztcbmltcG9ydCB7IFJpZ2h0LCBzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2VydmljZUNvbm5lY3RFbmRwb2ludHMgfSBmcm9tICcuL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICByaWdodHM6IFJpZ2h0W107XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQSBwbHVnaW4gZm9yIGZldGNoaW5nIGFuZCBwYXJzaW5nIHNlcnZpY2UgY29ubmVjdCByaWdodHMuXG4gKlxuICogVGhpcyBwbHVnaW4gdXNlcyB0aGUgYHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeWAgdG8gY3JlYXRlIGEgcGx1Z2luIHRoYXQgZmV0Y2hlcyB1c2VyIHJpZ2h0c1xuICogZnJvbSB0aGUgc3BlY2lmaWVkIGVuZHBvaW50IGFuZCBwYXJzZXMgdGhlIHJlc3BvbnNlIHRvIGV4dHJhY3QgdGhlIHJpZ2h0cy5cbiAqXG4gKiBAc2VlIHtzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3Rvcnl9XG4gKi9cbmV4cG9ydCBjb25zdCBzZXJ2aWNlQ29ubmVjdFJpZ2h0c1BsdWdpbiA9IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxHZXRTZXJ2aWNlQ29ubmVjdFJpZ2h0c1Jlc3BvbnNlRHRvPih7XG4gIGVuZHBvaW50OiBbU2VydmljZUNvbm5lY3RFbmRwb2ludHMudXNlclJpZ2h0c10sXG4gIHBhcnNlUmVzcG9uc2U6IChyZXMpID0+ICh7IHJpZ2h0czogcmVzPy5yaWdodHMgPz8gW10gfSksXG4gIGRlZmF1bHRWYWx1ZTogeyByaWdodHM6IFtdIH0sXG59KTtcbiJdfQ==
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { getLanguageCode } from '@odx/angular/utils';
|
|
2
|
-
import { serviceConnectPluginFactory } from './helpers';
|
|
3
|
-
import { ServiceConnectEndpoints } from './service-connect.config';
|
|
4
|
-
/**
|
|
5
|
-
* Gets the preferred language from a service connect user response.
|
|
6
|
-
*
|
|
7
|
-
* @param {GetServiceConnectUserResponseDto | null} res - The service connect user response.
|
|
8
|
-
* @returns {string | undefined} - The language or undefined.
|
|
9
|
-
*/
|
|
10
|
-
export function getServiceConnectUserLanguage(res) {
|
|
11
|
-
return res?.preferred_language || res?.language_code;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Gets the language code from a service connect user response.
|
|
15
|
-
*
|
|
16
|
-
* @param {GetServiceConnectUserResponseDto | null} res - The service connect user response.
|
|
17
|
-
* @returns {string | undefined} - The language code or undefined.
|
|
18
|
-
*/
|
|
19
|
-
export function getServiceConnectUserLanguageCode(res) {
|
|
20
|
-
return res?.language_code ? getLanguageCode(res.language_code) : undefined;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* A plugin for fetching and parsing the user's preferred language from service connect.
|
|
24
|
-
*
|
|
25
|
-
* This plugin uses the `serviceConnectPluginFactory` to create a plugin that fetches the user's preferred language
|
|
26
|
-
* from the user endpoint and parses the response to extract the preferred language.
|
|
27
|
-
*
|
|
28
|
-
* @see {serviceConnectPluginFactory}
|
|
29
|
-
*/
|
|
30
|
-
export const serviceConnectUserLanguagePlugin = serviceConnectPluginFactory({
|
|
31
|
-
endpoint: [ServiceConnectEndpoints.user],
|
|
32
|
-
parseResponse: (res) => ({ preferredLanguage: getServiceConnectUserLanguage(res), languageCode: getServiceConnectUserLanguageCode(res) }),
|
|
33
|
-
});
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvc2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsR0FBNkM7SUFDekYsT0FBTyxHQUFHLEVBQUUsa0JBQWtCLElBQUksR0FBRyxFQUFFLGFBQWEsQ0FBQztBQUN2RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsR0FBNkM7SUFDN0YsT0FBTyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDN0UsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRywyQkFBMkIsQ0FBbUM7SUFDNUcsUUFBUSxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDO0lBQ3hDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxpQ0FBaUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0NBQzFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExhbmd1YWdlQ29kZSB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB9IGZyb20gJy4vZHRvcyc7XG5pbXBvcnQgeyBzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2VydmljZUNvbm5lY3RFbmRwb2ludHMgfSBmcm9tICcuL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuXG4vKipcbiAqIEdldHMgdGhlIHByZWZlcnJlZCBsYW5ndWFnZSBmcm9tIGEgc2VydmljZSBjb25uZWN0IHVzZXIgcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIHtHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB8IG51bGx9IHJlcyAtIFRoZSBzZXJ2aWNlIGNvbm5lY3QgdXNlciByZXNwb25zZS5cbiAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gVGhlIGxhbmd1YWdlIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlcnZpY2VDb25uZWN0VXNlckxhbmd1YWdlKHJlcz86IEdldFNlcnZpY2VDb25uZWN0VXNlclJlc3BvbnNlRHRvIHwgbnVsbCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiByZXM/LnByZWZlcnJlZF9sYW5ndWFnZSB8fCByZXM/Lmxhbmd1YWdlX2NvZGU7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbGFuZ3VhZ2UgY29kZSBmcm9tIGEgc2VydmljZSBjb25uZWN0IHVzZXIgcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIHtHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB8IG51bGx9IHJlcyAtIFRoZSBzZXJ2aWNlIGNvbm5lY3QgdXNlciByZXNwb25zZS5cbiAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gVGhlIGxhbmd1YWdlIGNvZGUgb3IgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VydmljZUNvbm5lY3RVc2VyTGFuZ3VhZ2VDb2RlKHJlcz86IEdldFNlcnZpY2VDb25uZWN0VXNlclJlc3BvbnNlRHRvIHwgbnVsbCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiByZXM/Lmxhbmd1YWdlX2NvZGUgPyBnZXRMYW5ndWFnZUNvZGUocmVzLmxhbmd1YWdlX2NvZGUpIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgcGx1Z2luIGZvciBmZXRjaGluZyBhbmQgcGFyc2luZyB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSBmcm9tIHNlcnZpY2UgY29ubmVjdC5cbiAqXG4gKiBUaGlzIHBsdWdpbiB1c2VzIHRoZSBgc2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5YCB0byBjcmVhdGUgYSBwbHVnaW4gdGhhdCBmZXRjaGVzIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlXG4gKiBmcm9tIHRoZSB1c2VyIGVuZHBvaW50IGFuZCBwYXJzZXMgdGhlIHJlc3BvbnNlIHRvIGV4dHJhY3QgdGhlIHByZWZlcnJlZCBsYW5ndWFnZS5cbiAqXG4gKiBAc2VlIHtzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3Rvcnl9XG4gKi9cbmV4cG9ydCBjb25zdCBzZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZVBsdWdpbiA9IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0bz4oe1xuICBlbmRwb2ludDogW1NlcnZpY2VDb25uZWN0RW5kcG9pbnRzLnVzZXJdLFxuICBwYXJzZVJlc3BvbnNlOiAocmVzKSA9PiAoeyBwcmVmZXJyZWRMYW5ndWFnZTogZ2V0U2VydmljZUNvbm5lY3RVc2VyTGFuZ3VhZ2UocmVzKSwgbGFuZ3VhZ2VDb2RlOiBnZXRTZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZUNvZGUocmVzKSB9KSxcbn0pO1xuIl19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { serviceConnectPluginFactory } from './helpers';
|
|
2
|
-
import { getServiceConnectUserLanguage, getServiceConnectUserLanguageCode } from './service-connect-user-language.plugin';
|
|
3
|
-
import { ServiceConnectEndpoints } from './service-connect.config';
|
|
4
|
-
/**
|
|
5
|
-
* A plugin for fetching and parsing the user's profile from service connect.
|
|
6
|
-
*
|
|
7
|
-
* This plugin uses the `serviceConnectPluginFactory` to create a plugin that fetches the user's profile
|
|
8
|
-
* from the user endpoint and parses the response to extract the user's profile information.
|
|
9
|
-
*
|
|
10
|
-
* @see {serviceConnectPluginFactory}
|
|
11
|
-
*/
|
|
12
|
-
export const serviceConnectUserProfilePlugin = serviceConnectPluginFactory({
|
|
13
|
-
endpoint: [ServiceConnectEndpoints.user],
|
|
14
|
-
parseResponse: (res) => {
|
|
15
|
-
return {
|
|
16
|
-
country: res?.country,
|
|
17
|
-
institutionId: res?.institution_id,
|
|
18
|
-
institutionName: res?.institution_name,
|
|
19
|
-
institutionName2: res?.institution_name_2 ?? undefined,
|
|
20
|
-
institutionName3: res?.institution_name_3 ?? undefined,
|
|
21
|
-
accountNumber: res?.account_number ?? undefined,
|
|
22
|
-
institutionShortname: res?.institution_shortname,
|
|
23
|
-
languageCode: getServiceConnectUserLanguageCode(res),
|
|
24
|
-
preferredLanguage: getServiceConnectUserLanguage(res),
|
|
25
|
-
};
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXVzZXItcHJvZmlsZS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtdXNlci1wcm9maWxlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFpQm5FOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRywyQkFBMkIsQ0FBbUM7SUFDM0csUUFBUSxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDO0lBQ3hDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3JCLE9BQU87WUFDTCxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU87WUFDckIsYUFBYSxFQUFFLEdBQUcsRUFBRSxjQUFjO1lBQ2xDLGVBQWUsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCO1lBQ3RDLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxrQkFBa0IsSUFBSSxTQUFTO1lBQ3RELGdCQUFnQixFQUFFLEdBQUcsRUFBRSxrQkFBa0IsSUFBSSxTQUFTO1lBQ3RELGFBQWEsRUFBRSxHQUFHLEVBQUUsY0FBYyxJQUFJLFNBQVM7WUFDL0Msb0JBQW9CLEVBQUUsR0FBRyxFQUFFLHFCQUFxQjtZQUNoRCxZQUFZLEVBQUUsaUNBQWlDLENBQUMsR0FBRyxDQUFDO1lBQ3BELGlCQUFpQixFQUFFLDZCQUE2QixDQUFDLEdBQUcsQ0FBQztTQUN0RCxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldFNlcnZpY2VDb25uZWN0VXNlclJlc3BvbnNlRHRvIH0gZnJvbSAnLi9kdG9zJztcbmltcG9ydCB7IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBnZXRTZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZSwgZ2V0U2VydmljZUNvbm5lY3RVc2VyTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi9zZXJ2aWNlLWNvbm5lY3QtdXNlci1sYW5ndWFnZS5wbHVnaW4nO1xuaW1wb3J0IHsgU2VydmljZUNvbm5lY3RFbmRwb2ludHMgfSBmcm9tICcuL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICBjb3VudHJ5Pzogc3RyaW5nO1xuICAgICAgaW5zdGl0dXRpb25JZD86IG51bWJlcjtcbiAgICAgIGluc3RpdHV0aW9uTmFtZT86IHN0cmluZztcbiAgICAgIGluc3RpdHV0aW9uTmFtZTI/OiBzdHJpbmc7XG4gICAgICBpbnN0aXR1dGlvbk5hbWUzPzogc3RyaW5nO1xuICAgICAgaW5zdGl0dXRpb25TaG9ydG5hbWU/OiBzdHJpbmc7XG4gICAgICBhY2NvdW50TnVtYmVyPzogc3RyaW5nO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEEgcGx1Z2luIGZvciBmZXRjaGluZyBhbmQgcGFyc2luZyB0aGUgdXNlcidzIHByb2ZpbGUgZnJvbSBzZXJ2aWNlIGNvbm5lY3QuXG4gKlxuICogVGhpcyBwbHVnaW4gdXNlcyB0aGUgYHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeWAgdG8gY3JlYXRlIGEgcGx1Z2luIHRoYXQgZmV0Y2hlcyB0aGUgdXNlcidzIHByb2ZpbGVcbiAqIGZyb20gdGhlIHVzZXIgZW5kcG9pbnQgYW5kIHBhcnNlcyB0aGUgcmVzcG9uc2UgdG8gZXh0cmFjdCB0aGUgdXNlcidzIHByb2ZpbGUgaW5mb3JtYXRpb24uXG4gKlxuICogQHNlZSB7c2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5fVxuICovXG5leHBvcnQgY29uc3Qgc2VydmljZUNvbm5lY3RVc2VyUHJvZmlsZVBsdWdpbiA9IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0bz4oe1xuICBlbmRwb2ludDogW1NlcnZpY2VDb25uZWN0RW5kcG9pbnRzLnVzZXJdLFxuICBwYXJzZVJlc3BvbnNlOiAocmVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvdW50cnk6IHJlcz8uY291bnRyeSxcbiAgICAgIGluc3RpdHV0aW9uSWQ6IHJlcz8uaW5zdGl0dXRpb25faWQsXG4gICAgICBpbnN0aXR1dGlvbk5hbWU6IHJlcz8uaW5zdGl0dXRpb25fbmFtZSxcbiAgICAgIGluc3RpdHV0aW9uTmFtZTI6IHJlcz8uaW5zdGl0dXRpb25fbmFtZV8yID8/IHVuZGVmaW5lZCxcbiAgICAgIGluc3RpdHV0aW9uTmFtZTM6IHJlcz8uaW5zdGl0dXRpb25fbmFtZV8zID8/IHVuZGVmaW5lZCxcbiAgICAgIGFjY291bnROdW1iZXI6IHJlcz8uYWNjb3VudF9udW1iZXIgPz8gdW5kZWZpbmVkLFxuICAgICAgaW5zdGl0dXRpb25TaG9ydG5hbWU6IHJlcz8uaW5zdGl0dXRpb25fc2hvcnRuYW1lLFxuICAgICAgbGFuZ3VhZ2VDb2RlOiBnZXRTZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZUNvZGUocmVzKSxcbiAgICAgIHByZWZlcnJlZExhbmd1YWdlOiBnZXRTZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZShyZXMpLFxuICAgIH07XG4gIH0sXG59KTtcbiJdfQ==
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { AuthEnvironment } from '@odx/auth';
|
|
2
|
-
export const ServiceConnectEnvironments = {
|
|
3
|
-
[AuthEnvironment.DEV]: 'https://api.test.connect.draeger.com',
|
|
4
|
-
[AuthEnvironment.STAGE]: 'https://api.staging.connect.draeger.com',
|
|
5
|
-
[AuthEnvironment.PROD]: 'https://api.connect.draeger.com',
|
|
6
|
-
};
|
|
7
|
-
export const ServiceConnectScopes = {
|
|
8
|
-
BASE: 'dcid',
|
|
9
|
-
PROFILE: 'dcid.profile',
|
|
10
|
-
RIGHTS: 'dcid.rights',
|
|
11
|
-
INSTITUTION: 'dcid.institution',
|
|
12
|
-
};
|
|
13
|
-
export const ServiceConnectEndpoints = {
|
|
14
|
-
user: '/users/me',
|
|
15
|
-
userRights: '/users/me/rights',
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL3NlcnZpY2UtY29ubmVjdC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc1QyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBb0M7SUFDekUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsc0NBQXNDO0lBQzdELENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLHlDQUF5QztJQUNsRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxpQ0FBaUM7Q0FDMUQsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLGNBQWM7SUFDdkIsTUFBTSxFQUFFLGFBQWE7SUFDckIsV0FBVyxFQUFFLGtCQUFrQjtDQUNoQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsSUFBSSxFQUFFLFdBQVc7SUFDakIsVUFBVSxFQUFFLGtCQUFrQjtDQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEVudmlyb25tZW50IH0gZnJvbSAnQG9keC9hdXRoJztcblxuZXhwb3J0IHR5cGUgU2VydmljZUNvbm5lY3RFbnZpcm9ubWVudCA9IHsgY3VzdG9tOiBzdHJpbmcgfTtcbmV4cG9ydCBjb25zdCBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50czogUmVjb3JkPEF1dGhFbnZpcm9ubWVudCwgc3RyaW5nPiA9IHtcbiAgW0F1dGhFbnZpcm9ubWVudC5ERVZdOiAnaHR0cHM6Ly9hcGkudGVzdC5jb25uZWN0LmRyYWVnZXIuY29tJyxcbiAgW0F1dGhFbnZpcm9ubWVudC5TVEFHRV06ICdodHRwczovL2FwaS5zdGFnaW5nLmNvbm5lY3QuZHJhZWdlci5jb20nLFxuICBbQXV0aEVudmlyb25tZW50LlBST0RdOiAnaHR0cHM6Ly9hcGkuY29ubmVjdC5kcmFlZ2VyLmNvbScsXG59O1xuZXhwb3J0IGNvbnN0IFNlcnZpY2VDb25uZWN0U2NvcGVzID0ge1xuICBCQVNFOiAnZGNpZCcsXG4gIFBST0ZJTEU6ICdkY2lkLnByb2ZpbGUnLFxuICBSSUdIVFM6ICdkY2lkLnJpZ2h0cycsXG4gIElOU1RJVFVUSU9OOiAnZGNpZC5pbnN0aXR1dGlvbicsXG59O1xuZXhwb3J0IGNvbnN0IFNlcnZpY2VDb25uZWN0RW5kcG9pbnRzID0ge1xuICB1c2VyOiAnL3VzZXJzL21lJyxcbiAgdXNlclJpZ2h0czogJy91c2Vycy9tZS9yaWdodHMnLFxufTtcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWF1dGgtcGx1Z2lucy1zZXJ2aWNlLWNvbm5lY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL29keC1hdXRoLXBsdWdpbnMtc2VydmljZS1jb25uZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
package/lib/auth.component.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { DropdownOptions } from '@odx/angular/components/dropdown';
|
|
2
|
-
import { AuthService } from './auth.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class AuthComponent {
|
|
5
|
-
protected readonly authConfig: import("./auth.config").AuthConfig;
|
|
6
|
-
protected readonly authService: AuthService;
|
|
7
|
-
protected readonly dropdownOptions: Partial<DropdownOptions>;
|
|
8
|
-
protected readonly vm$: import("rxjs").Observable<{
|
|
9
|
-
idClaims: OdxAuth.IdentityClaims | null;
|
|
10
|
-
isAuthenticated: boolean;
|
|
11
|
-
}>;
|
|
12
|
-
/**
|
|
13
|
-
* Whether to hide the institution information.
|
|
14
|
-
*
|
|
15
|
-
* @type {InputSignal<boolean>}
|
|
16
|
-
*/
|
|
17
|
-
readonly hideInstitution: import("@angular/core").InputSignal<boolean>;
|
|
18
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AuthComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AuthComponent, "odx-auth", never, { "hideInstitution": { "alias": "hideInstitution"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
20
|
-
}
|
package/lib/auth.config.d.ts
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { DynamicTextContent } from '@odx/angular/cdk/dynamic-view';
|
|
2
|
-
import { OAuthErrorEvent, OAuthStorage } from 'angular-oauth2-oidc';
|
|
3
|
-
import { AuthEnvironment, AuthorizedHandler, AuthPluginFactory } from './models';
|
|
4
|
-
export declare const AUTH_HTTP_HEADER = "Authorization";
|
|
5
|
-
export declare const ODX_AUTH_DEFAULT_SCOPES: string[];
|
|
6
|
-
export declare const ODX_AUTH_HOSTS: Record<AuthEnvironment, string>;
|
|
7
|
-
export declare const ODX_AUTH_USER_PROFILE_HOSTS: Record<AuthEnvironment, string>;
|
|
8
|
-
export type AuthErrorHandlerFn = (error: OAuthErrorEvent) => void;
|
|
9
|
-
export type ResolveUsernameFn = (rawClaims: OdxAuth.RawIdentityClaims) => string;
|
|
10
|
-
export type ResolveEmailFn = (rawClaims: OdxAuth.RawIdentityClaims) => string;
|
|
11
|
-
export type CreateInitialsFn = (value: string) => string;
|
|
12
|
-
/**
|
|
13
|
-
* Configuration options for the authentication module.
|
|
14
|
-
*
|
|
15
|
-
* @interface AuthConfig
|
|
16
|
-
*/
|
|
17
|
-
export interface AuthConfig {
|
|
18
|
-
environment: AuthEnvironment;
|
|
19
|
-
clientId?: string;
|
|
20
|
-
issuer?: string;
|
|
21
|
-
redirectPath: string;
|
|
22
|
-
allowedUrls: Array<string | RegExp>;
|
|
23
|
-
timeoutFactor: number;
|
|
24
|
-
maxOfflineTime: number;
|
|
25
|
-
loadUserProfile: boolean;
|
|
26
|
-
postLogoutRedirectUrl?: string;
|
|
27
|
-
scopes?: string[];
|
|
28
|
-
discoveryUrl?: string;
|
|
29
|
-
errorHandler: AuthErrorHandlerFn;
|
|
30
|
-
createInitials: CreateInitialsFn;
|
|
31
|
-
resolveEmail: ResolveEmailFn;
|
|
32
|
-
resolveUsername: ResolveUsernameFn;
|
|
33
|
-
storage?: OAuthStorage;
|
|
34
|
-
plugins: AuthPluginFactory[];
|
|
35
|
-
pluginsErrorHandler?: (error: unknown) => void;
|
|
36
|
-
defaultAuthorizedHandler?: AuthorizedHandler | null;
|
|
37
|
-
enableLoadingScreen: boolean;
|
|
38
|
-
refreshTokenOnInit?: boolean;
|
|
39
|
-
loadingScreenMessage?: DynamicTextContent | null;
|
|
40
|
-
userProfileUrl?: string;
|
|
41
|
-
requireSignIn?: boolean;
|
|
42
|
-
requireSignInForRequests?: boolean;
|
|
43
|
-
waitForTokenInMs?: number;
|
|
44
|
-
showDebugInformation?: boolean;
|
|
45
|
-
pluginTimeout?: number;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Tools for injecting and providing the auth configuration with default configuration for the authentication.
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* // Providing custom authentication configuration.
|
|
52
|
-
* ```ts
|
|
53
|
-
* import { createInitials, resolveEmail, resolveUsername } from './helpers';
|
|
54
|
-
*
|
|
55
|
-
* providers: [provideAuthConfig({
|
|
56
|
-
* environment: 'dev',
|
|
57
|
-
* redirectPath: 'login/callback',
|
|
58
|
-
* allowedUrls: [],
|
|
59
|
-
* timeoutFactor: 0.75,
|
|
60
|
-
* maxOfflineTime: 60 * 60, // 1 hour
|
|
61
|
-
* loadUserProfile: false,
|
|
62
|
-
* errorHandler: (error) => {
|
|
63
|
-
* throw error;
|
|
64
|
-
* },
|
|
65
|
-
* createInitials,
|
|
66
|
-
* resolveEmail,
|
|
67
|
-
* resolveUsername,
|
|
68
|
-
* plugins: [],
|
|
69
|
-
* defaultAuthorizedHandler: null,
|
|
70
|
-
* enableLoadingScreen: true,
|
|
71
|
-
* loadingScreenMessage: 'Loading...',
|
|
72
|
-
* waitForTokenInMs: 500,
|
|
73
|
-
*
|
|
74
|
-
* })],
|
|
75
|
-
*
|
|
76
|
-
* // Injecting the datepicker configuration.
|
|
77
|
-
* ```ts
|
|
78
|
-
* @Component({})
|
|
79
|
-
* export class MyComponent {
|
|
80
|
-
* constructor(@Inject(injectAuthConfig()) private readonly authConfig: AuthConfig) {}
|
|
81
|
-
* }
|
|
82
|
-
* ```
|
|
83
|
-
*/
|
|
84
|
-
export declare const AuthDefaultConfig: AuthConfig, AuthConfig: import("@angular/core").InjectionToken<Partial<AuthConfig>>, injectAuthConfig: () => AuthConfig, provideAuthConfig: <D extends import("@odx/angular/utils").ConfigDependencies = import("@odx/angular/utils").ConfigDependencies<Partial<AuthConfig>>>(config: import("@odx/angular/utils").ConfigProvider<Partial<AuthConfig>, D>) => import("@angular/core").FactoryProvider | import("@angular/core").ValueProvider;
|
package/lib/auth.directive.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { NgIfContext } from '@angular/common';
|
|
2
|
-
import { AfterViewInit, TemplateRef } from '@angular/core';
|
|
3
|
-
import { AuthorizedHandler } from './models';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
export declare class AuthDirective implements AfterViewInit {
|
|
7
|
-
private readonly authService;
|
|
8
|
-
private readonly ngIfDirective;
|
|
9
|
-
private readonly takeUntilDestroyed;
|
|
10
|
-
/**
|
|
11
|
-
* The authorization handler or a string representing the handler.
|
|
12
|
-
*
|
|
13
|
-
* @type {AuthorizedHandler | null | string}
|
|
14
|
-
*/
|
|
15
|
-
authorizationHandler?: AuthorizedHandler | null | string;
|
|
16
|
-
/**
|
|
17
|
-
* Sets the template to be displayed when the authorization check fails.
|
|
18
|
-
*
|
|
19
|
-
* @param {TemplateRef<NgIfContext<unknown>>} value - The template reference.
|
|
20
|
-
*/
|
|
21
|
-
set elseTemplate(value: TemplateRef<NgIfContext<unknown>>);
|
|
22
|
-
ngAfterViewInit(): void;
|
|
23
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AuthDirective, never>;
|
|
24
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<AuthDirective, "ng-template[odxAuth]", never, { "authorizationHandler": { "alias": "odxAuth"; "required": false; }; "elseTemplate": { "alias": "odxAuthElse"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.NgIf; inputs: {}; outputs: {}; }]>;
|
|
25
|
-
}
|
package/lib/auth.guard.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { CanActivateFn } from '@angular/router';
|
|
2
|
-
import { AuthorizedHandler } from './models';
|
|
3
|
-
/**
|
|
4
|
-
* Guard function to protect routes from unauthorized access.
|
|
5
|
-
*
|
|
6
|
-
* @param {AuthorizedHandler} [authorizedHandler] - Optional handler to check if the user is authorized.
|
|
7
|
-
* @param {string | any[]} [redirectTo] - Optional URL or route to redirect unauthorized users to. Can be a string or an array of strings.
|
|
8
|
-
* @param {boolean} [isExternal=false] - Optional flag to indicate if the redirection should be external. Defaults to false.
|
|
9
|
-
* @returns {CanActivateFn} A function that implements the CanActivateFn interface.
|
|
10
|
-
*/
|
|
11
|
-
export declare function authGuard(authorizedHandler?: AuthorizedHandler, redirectTo?: any[] | string, isExternal?: boolean): CanActivateFn;
|