@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
75 lines • 12.4 kB
JavaScript
import { Injectable } from '@angular/core';
import { UserAgent, isBasic, isOauthInternal } from './basic-settings.model';
import { defaults, isEmpty, omitBy, omit } from 'lodash-es';
import * as i0 from "@angular/core";
export class TenantLoginOptionMapper {
mapTo(tenantLoginOption) {
const loginOption = omit(this.prapareTenantLoginOption(tenantLoginOption), 'authenticationRestrictions');
if (isBasic(loginOption)) {
loginOption.authenticationRestrictions = this.mapAuthenticationRestrictionsTo(tenantLoginOption.authenticationRestrictions);
}
return loginOption;
}
mapFrom(originalLoginOption, newLoginOption) {
if (isBasic(originalLoginOption)) {
return this.mapBasicLoginOption(originalLoginOption, newLoginOption);
}
if (isOauthInternal(originalLoginOption)) {
return this.mapOauthInternalLoginOption(originalLoginOption, newLoginOption);
}
throw new Error(`TenantLoginOptionMapper: The tenant login option cannot be mapped. Login option with type: ${originalLoginOption.type} is not supported.`);
}
mapAuthenticationRestrictionsTo(authenticationRestrictions) {
const restrictions = defaults({}, omitBy(authenticationRestrictions, isEmpty), {
forbiddenUserAgents: [''],
trustedUserAgents: [''],
forbiddenClients: []
});
restrictions.forbiddenUserAgents = restrictions.forbiddenUserAgents.map(val => new UserAgent(val));
restrictions.trustedUserAgents = restrictions.trustedUserAgents.map(val => new UserAgent(val));
return restrictions;
}
mapBasicLoginOption(originalLoginOption, newLoginOption) {
const loginOption = omit(originalLoginOption, ['sessionConfiguration']);
loginOption.authenticationRestrictions = this.mapAuthenticationRestrictionsFrom(newLoginOption.authenticationRestrictions);
return loginOption;
}
mapOauthInternalLoginOption(originalLoginOption, newLoginOption) {
const loginOption = omit(originalLoginOption, ['authenticationRestrictions']);
newLoginOption.sessionConfiguration !== null
? (loginOption.sessionConfiguration = newLoginOption.sessionConfiguration)
: delete loginOption.sessionConfiguration;
return loginOption;
}
mapAuthenticationRestrictionsFrom(authenticationRestrictions) {
return {
trustedUserAgents: authenticationRestrictions.trustedUserAgents
.filter(({ value }) => value)
.map(({ value }) => value),
forbiddenUserAgents: authenticationRestrictions.forbiddenUserAgents
.filter(({ value }) => value)
.map(({ value }) => value),
forbiddenClients: authenticationRestrictions.forbiddenClients.filter(value => value)
};
}
prapareTenantLoginOption(tenantLoginOption) {
return omit(tenantLoginOption, [
'self',
'strengthValidity',
'tfaStrategy',
'greenMinLength',
'enforceStrength',
'strengthValidity',
'_type'
]);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TenantLoginOptionMapper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TenantLoginOptionMapper, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TenantLoginOptionMapper, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWxvZ2luLW9wdGlvbi5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hdXRoLWNvbmZpZ3VyYXRpb24vYmFzaWMtc2V0dGluZ3MvdGVuYW50LWxvZ2luLW9wdGlvbi5tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUdULE9BQU8sRUFDUCxlQUFlLEVBQ2hCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFLNUQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxLQUFLLENBQUMsaUJBQXFDO1FBQ3pDLE1BQU0sV0FBVyxHQUFzQixJQUFJLENBQ3pDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUNoRCw0QkFBNEIsQ0FDN0IsQ0FBQztRQUNGLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDekIsV0FBVyxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FDM0UsaUJBQWlCLENBQUMsMEJBQTBCLENBQzdDLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sQ0FDTCxtQkFBc0MsRUFDdEMsY0FBaUM7UUFFakMsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxJQUFJLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsbUJBQW1CLEVBQUUsY0FBYyxDQUFD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dCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBVc2VyQWdlbnQsXG4gIEF1dGhlbnRpY2F0aW9uUmVzdHJpY3Rpb25zLFxuICBUZW5hbnRMb2dpbk9wdGlvbixcbiAgaXNCYXNpYyxcbiAgaXNPYXV0aEludGVybmFsXG59IGZyb20gJy4vYmFzaWMtc2V0dGluZ3MubW9kZWwnO1xuaW1wb3J0IHsgSVRlbmFudExvZ2luT3B0aW9uLCBJQXV0aGVudGljYXRpb25SZXN0cmljdGlvbnMgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBkZWZhdWx0cywgaXNFbXB0eSwgb21pdEJ5LCBvbWl0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGVuYW50TG9naW5PcHRpb25NYXBwZXIge1xuICBtYXBUbyh0ZW5hbnRMb2dpbk9wdGlvbjogSVRlbmFudExvZ2luT3B0aW9uKTogVGVuYW50TG9naW5PcHRpb24ge1xuICAgIGNvbnN0IGxvZ2luT3B0aW9uOiBUZW5hbnRMb2dpbk9wdGlvbiA9IG9taXQoXG4gICAgICB0aGlzLnByYXBhcmVUZW5hbnRMb2dpbk9wdGlvbih0ZW5hbnRMb2dpbk9wdGlvbiksXG4gICAgICAnYXV0aGVudGljYXRpb25SZXN0cmljdGlvbnMnXG4gICAgKTtcbiAgICBpZiAoaXNCYXNpYyhsb2dpbk9wdGlvbikpIHtcbiAgICAgIGxvZ2luT3B0aW9uLmF1dGhlbnRpY2F0aW9uUmVzdHJpY3Rpb25zID0gdGhpcy5tYXBBdXRoZW50aWNhdGlvblJlc3RyaWN0aW9uc1RvKFxuICAgICAgICB0ZW5hbnRMb2dpbk9wdGlvbi5hdXRoZW50aWNhdGlvblJlc3RyaWN0aW9uc1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGxvZ2luT3B0aW9uO1xuICB9XG5cbiAgbWFwRnJvbShcbiAgICBvcmlnaW5hbExvZ2luT3B0aW9uOiBUZW5hbnRMb2dpbk9wdGlvbixcbiAgICBuZXdMb2dpbk9wdGlvbjogVGVuYW50TG9naW5PcHRpb25cbiAgKTogSVRlbmFudExvZ2luT3B0aW9uIHtcbiAgICBpZiAoaXNCYXNpYyhvcmlnaW5hbExvZ2luT3B0aW9uKSkge1xuICAgICAgcmV0dXJuIHRoaXMubWFwQmFzaWNMb2dpbk9wdGlvbihvcmlnaW5hbExvZ2luT3B0aW9uLCBuZXdMb2dpbk9wdGlvbik7XG4gICAgfVxuICAgIGlmIChpc09hdXRoSW50ZXJuYWwob3JpZ2luYWxMb2dpbk9wdGlvbikpIHtcbiAgICAgIHJldHVybiB0aGlzLm1hcE9hdXRoSW50ZXJuYWxMb2dpbk9wdGlvbihvcmlnaW5hbExvZ2luT3B0aW9uLCBuZXdMb2dpbk9wdGlvbik7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUZW5hbnRMb2dpbk9wdGlvbk1hcHBlcjogVGhlIHRlbmFudCBsb2dpbiBvcHRpb24gY2Fubm90IGJlIG1hcHBlZC4gTG9naW4gb3B0aW9uIHdpdGggdHlwZTogJHtvcmlnaW5hbExvZ2luT3B0aW9uLnR5cGV9IGlzIG5vdCBzdXBwb3J0ZWQuYFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG1hcEF1dGhlbnRpY2F0aW9uUmVzdHJpY3Rpb25zVG8oXG4gICAgYXV0aGVudGljYXRpb25SZXN0cmljdGlvbnM6IElBdXRoZW50aWNhdGlvblJlc3RyaWN0aW9uc1xuICApOiBBdXRoZW50aWNhdGlvblJlc3RyaWN0aW9ucyB7XG4gICAgY29uc3QgcmVzdHJpY3Rpb25zID0gZGVmYXVsdHMoe30sIG9taXRCeShhdXRoZW50aWNhdGlvblJlc3RyaWN0aW9ucywgaXNFbXB0eSksIHtcbiAgICAgIGZvcmJpZGRlblVzZXJBZ2VudHM6IFsnJ10sXG4gICAgICB0cnVzdGVkVXNlckFnZW50czogWycnXSxcbiAgICAgIGZvcmJpZGRlbkNsaWVudHM6IFtdXG4gICAgfSk7XG4gICAgcmVzdHJpY3Rpb25zLmZvcmJpZGRlblVzZXJBZ2VudHMgPSByZXN0cmljdGlvbnMuZm9yYmlkZGVuVXNlckFnZW50cy5tYXAoXG4gICAgICB2YWwgPT4gbmV3IFVzZXJBZ2VudCh2YWwpXG4gICAgKTtcbiAgICByZXN0cmljdGlvbnMudHJ1c3RlZFVzZXJBZ2VudHMgPSByZXN0cmljdGlvbnMudHJ1c3RlZFVzZXJBZ2VudHMubWFwKHZhbCA9PiBuZXcgVXNlckFnZW50KHZhbCkpO1xuICAgIHJldHVybiByZXN0cmljdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIG1hcEJhc2ljTG9naW5PcHRpb24oXG4gICAgb3JpZ2luYWxMb2dpbk9wdGlvbjogVGVuYW50TG9naW5PcHRpb24sXG4gICAgbmV3TG9naW5PcHRpb246IFRlbmFudExvZ2luT3B0aW9uXG4gICkge1xuICAgIGNvbnN0IGxvZ2luT3B0aW9uID0gb21pdChvcmlnaW5hbExvZ2luT3B0aW9uLCBbJ3Nlc3Npb25Db25maWd1cmF0aW9uJ10pO1xuICAgIGxvZ2luT3B0aW9uLmF1dGhlbnRpY2F0aW9uUmVzdHJpY3Rpb25zID0gdGhpcy5tYXBBdXRoZW50aWNhdGlvblJlc3RyaWN0aW9uc0Zyb20oXG4gICAgICBuZXdMb2dpbk9wdGlvbi5hdXRoZW50aWNhdGlvblJlc3RyaWN0aW9uc1xuICAgICk7XG4gICAgcmV0dXJuIGxvZ2luT3B0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBPYXV0aEludGVybmFsTG9naW5PcHRpb24oXG4gICAgb3JpZ2luYWxMb2dpbk9wdGlvbjogVGVuYW50TG9naW5PcHRpb24sXG4gICAgbmV3TG9naW5PcHRpb246IFRlbmFudExvZ2luT3B0aW9uXG4gICkge1xuICAgIGNvbnN0IGxvZ2luT3B0aW9uID0gb21pdChvcmlnaW5hbExvZ2luT3B0aW9uLCBbJ2F1dGhlbnRpY2F0aW9uUmVzdHJpY3Rpb25zJ10pO1xuICAgIG5ld0xvZ2luT3B0aW9uLnNlc3Npb25Db25maWd1cmF0aW9uICE9PSBudWxsXG4gICAgICA/IChsb2dpbk9wdGlvbi5zZXNzaW9uQ29uZmlndXJhdGlvbiA9IG5ld0xvZ2luT3B0aW9uLnNlc3Npb25Db25maWd1cmF0aW9uKVxuICAgICAgOiBkZWxldGUgbG9naW5PcHRpb24uc2Vzc2lvbkNvbmZpZ3VyYXRpb247XG4gICAgcmV0dXJuIGxvZ2luT3B0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBBdXRoZW50aWNhdGlvblJlc3RyaWN0aW9uc0Zyb20oXG4gICAgYXV0aGVudGljYXRpb25SZXN0cmljdGlvbnM6IEF1dGhlbnRpY2F0aW9uUmVzdHJpY3Rpb25zXG4gICk6IElBdXRoZW50aWNhdGlvblJlc3RyaWN0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRydXN0ZWRVc2VyQWdlbnRzOiBhdXRoZW50aWNhdGlvblJlc3RyaWN0aW9ucy50cnVzdGVkVXNlckFnZW50c1xuICAgICAgICAuZmlsdGVyKCh7IHZhbHVlIH0pID0+IHZhbHVlKVxuICAgICAgICAubWFwKCh7IHZhbHVlIH0pID0+IHZhbHVlKSxcbiAgICAgIGZvcmJpZGRlblVzZXJBZ2VudHM6IGF1dGhlbnRpY2F0aW9uUmVzdHJpY3Rpb25zLmZvcmJpZGRlblVzZXJBZ2VudHNcbiAgICAgICAgLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZSlcbiAgICAgICAgLm1hcCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSksXG4gICAgICBmb3JiaWRkZW5DbGllbnRzOiBhdXRoZW50aWNhdGlvblJlc3RyaWN0aW9ucy5mb3JiaWRkZW5DbGllbnRzLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSlcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwcmFwYXJlVGVuYW50TG9naW5PcHRpb24odGVuYW50TG9naW5PcHRpb246IElUZW5hbnRMb2dpbk9wdGlvbik6IFRlbmFudExvZ2luT3B0aW9uIHtcbiAgICByZXR1cm4gb21pdCh0ZW5hbnRMb2dpbk9wdGlvbiwgW1xuICAgICAgJ3NlbGYnLFxuICAgICAgJ3N0cmVuZ3RoVmFsaWRpdHknLFxuICAgICAgJ3RmYVN0cmF0ZWd5JyxcbiAgICAgICdncmVlbk1pbkxlbmd0aCcsXG4gICAgICAnZW5mb3JjZVN0cmVuZ3RoJyxcbiAgICAgICdzdHJlbmd0aFZhbGlkaXR5JyxcbiAgICAgICdfdHlwZSdcbiAgICBdKTtcbiAgfVxufVxuIl19