UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

99 lines 13.1 kB
import { Inject, Injectable, Optional } from '@angular/core'; import { SimpleFilter } from '../../filter/models/simple-filter'; import { UserImpersonationConstants } from '../models/user-impersonation-constants'; import moment from 'moment'; import { NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT, NAE_USER_IMPERSONATE_DIALOG_COMPONENT } from '../../dialog/injection-tokens'; import * as i0 from "@angular/core"; import * as i1 from "../../logger/services/logger.service"; import * as i2 from "../../snack-bar/services/snack-bar.service"; import * as i3 from "./impersonation.service"; import * as i4 from "../../user/services/user.service"; import * as i5 from "@angular/material/dialog"; export class ImpersonationUserSelectService { _log; _snackBar; _impersonation; _user; _dialog; _userImpersonateComponent; _adminImpersonateComponent; constructor(_log, _snackBar, _impersonation, _user, _dialog, _userImpersonateComponent, _adminImpersonateComponent) { this._log = _log; this._snackBar = _snackBar; this._impersonation = _impersonation; this._user = _user; this._dialog = _dialog; this._userImpersonateComponent = _userImpersonateComponent; this._adminImpersonateComponent = _adminImpersonateComponent; } /** * Opens side menu with users who can be impersonated by logged user */ selectImpersonate() { if (this.isAdmin()) { const dialogRef = this._dialog.open(this._adminImpersonateComponent, { panelClass: "dialog-responsive", data: this.injectedData(), }); dialogRef.afterClosed().subscribe(event => { this._log.debug('Impersonable user select :' + event); if (event?.data === undefined) { return; } this._impersonation.impersonateUser(event.data._id); }); } else { const dialogRef = this._dialog.open(this._userImpersonateComponent, { panelClass: "dialog-responsive", data: this.injectedData(), }); dialogRef.afterClosed().subscribe(event => { this._log.debug('Impersonable config select :' + event); if (event?.data === undefined) { return; } this._impersonation.impersonateByConfig(event.data.stringId); }); } } injectedData() { const currentTime = moment(); let filterCasesFilter = SimpleFilter.fromCaseQuery({ process: { identifier: UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER }, query: ` (dataSet.impersonators.keyValue:${this._user.user.id}) AND (dataSet.is_active.booleanValue:true) AND ((!(_exists_:dataSet.valid_from.timestampValue)) OR (dataSet.valid_from.timestampValue:<` + currentTime.valueOf() + `)) AND ((!(_exists_:dataSet.valid_to.timestampValue)) OR (dataSet.valid_to.timestampValue:>${currentTime.valueOf()})) ` }); return { filter: filterCasesFilter }; } isAdmin() { return this._user.hasAuthority('ROLE_ADMIN'); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImpersonationUserSelectService, deps: [{ token: i1.LoggerService }, { token: i2.SnackBarService }, { token: i3.ImpersonationService }, { token: i4.UserService }, { token: i5.MatDialog }, { token: NAE_USER_IMPERSONATE_DIALOG_COMPONENT, optional: true }, { token: NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImpersonationUserSelectService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImpersonationUserSelectService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.SnackBarService }, { type: i3.ImpersonationService }, { type: i4.UserService }, { type: i5.MatDialog }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_USER_IMPERSONATE_DIALOG_COMPONENT] }] }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wZXJzb25hdGlvbi11c2VyLXNlbGVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9pbXBlcnNvbmF0aW9uL3NlcnZpY2VzL2ltcGVyc29uYXRpb24tdXNlci1zZWxlY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFRM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUc1QixPQUFPLEVBQ0gsc0NBQXNDLEVBQ3RDLHFDQUFxQyxFQUN4QyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBS3ZDLE1BQU0sT0FBTyw4QkFBOEI7SUFFakI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUMyRDtJQUNDO0lBTmxGLFlBQXNCLElBQW1CLEVBQ25CLFNBQTBCLEVBQzFCLGNBQW9DLEVBQ3BDLEtBQWtCLEVBQ2xCLE9BQWtCLEVBQ3lDLHlCQUE4QixFQUM3QiwwQkFBK0I7UUFOM0YsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQ3lDLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBSztRQUM3QiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQUs7SUFDOUcsQ0FBQztJQUVKOztPQUVHO0lBQ0ksaUJBQWlCO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2hCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRTtnQkFDakUsVUFBVSxFQUFFLG1CQUFtQjtnQkFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7YUFDNUIsQ0FBQyxDQUFDO1lBQ0gsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQ3RELElBQUksS0FBSyxFQUFFLElBQUksS0FBSyxTQUFTLEVBQUU7b0JBQzNCLE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUU7Z0JBQ2hFLFVBQVUsRUFBRSxtQkFBbUI7Z0JBQy9CLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO2FBQzVCLENBQUMsQ0FBQztZQUNILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDhCQUE4QixHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssU0FBUyxFQUFFO29CQUMzQixPQUFPO2lCQUNWO2dCQUNELElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUUsS0FBSyxDQUFDLElBQXNDLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEcsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFUyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQzdCLElBQUksaUJBQWlCLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQztZQUMvQyxPQUFPLEVBQUU7Z0JBQ0wsVUFBVSxFQUFFLDBCQUEwQixDQUFDLG1DQUFtQzthQUM3RTtZQUNELEtBQUssRUFBRTs4Q0FDMkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTs7cUdBRXFDLEdBQUcsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHO2tHQUM5QixXQUFXLENBQUMsT0FBTyxFQUFFO2FBQzFHO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsT0FBTztZQUNILE1BQU0sRUFBRSxpQkFBaUI7U0FDSSxDQUFBO0lBQ3JDLENBQUM7SUFFUyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxDQUFDO3dHQTlEUSw4QkFBOEIsc0tBT1AscUNBQXFDLDZCQUNyQyxzQ0FBc0M7NEdBUjdELDhCQUE4QixjQUY3QixNQUFNOzs0RkFFUCw4QkFBOEI7a0JBSDFDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRZ0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQ0FBcUM7OzBCQUN4RCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ltcGVyc29uYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi9pbXBlcnNvbmF0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7U25hY2tCYXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9zbmFjay1iYXIvc2VydmljZXMvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHtVc2VySW1wZXJzb25hdGVDb25maWdNZXRhZGF0YX0gZnJvbSAnLi4vbW9kZWxzL3VzZXItaW1wZXJzb25hdGUtY29uZmlnLW1ldGFkYXRhJztcbmltcG9ydCB7XG4gICAgVXNlckltcGVyc29uYXRlSW5qZWN0aW9uRGF0YVxufSBmcm9tICcuLi8uLi9zaWRlLW1lbnUvY29udGVudC1jb21wb25lbnRzL3VzZXItaW1wZXJzb25hdGUvbW9kZWwvdXNlci1pbXBlcnNvbmF0ZS1pbmplY3Rpb24tZGF0YSc7XG5pbXBvcnQge1NpbXBsZUZpbHRlcn0gZnJvbSAnLi4vLi4vZmlsdGVyL21vZGVscy9zaW1wbGUtZmlsdGVyJztcbmltcG9ydCB7VXNlckltcGVyc29uYXRpb25Db25zdGFudHN9IGZyb20gJy4uL21vZGVscy91c2VyLWltcGVyc29uYXRpb24tY29uc3RhbnRzJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgICBOQUVfQURNSU5fSU1QRVJTT05BVEVfRElBTE9HX0NPTVBPTkVOVCxcbiAgICBOQUVfVVNFUl9JTVBFUlNPTkFURV9ESUFMT0dfQ09NUE9ORU5UXG59IGZyb20gJy4uLy4uL2RpYWxvZy9pbmplY3Rpb24tdG9rZW5zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW1wZXJzb25hdGlvblVzZXJTZWxlY3RTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2ltcGVyc29uYXRpb246IEltcGVyc29uYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdXNlcjogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9VU0VSX0lNUEVSU09OQVRFX0RJQUxPR19DT01QT05FTlQpIHByb3RlY3RlZCBfdXNlckltcGVyc29uYXRlQ29tcG9uZW50OiBhbnksXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfQURNSU5fSU1QRVJTT05BVEVfRElBTE9HX0NPTVBPTkVOVCkgcHJvdGVjdGVkIF9hZG1pbkltcGVyc29uYXRlQ29tcG9uZW50OiBhbnksXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogT3BlbnMgc2lkZSBtZW51IHdpdGggdXNlcnMgd2hvIGNhbiBiZSBpbXBlcnNvbmF0ZWQgYnkgbG9nZ2VkIHVzZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0SW1wZXJzb25hdGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQWRtaW4oKSkge1xuICAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nLm9wZW4odGhpcy5fYWRtaW5JbXBlcnNvbmF0ZUNvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFwiZGlhbG9nLXJlc3BvbnNpdmVcIixcbiAgICAgICAgICAgICAgICBkYXRhOiB0aGlzLmluamVjdGVkRGF0YSgpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnSW1wZXJzb25hYmxlIHVzZXIgc2VsZWN0IDonICsgZXZlbnQpO1xuICAgICAgICAgICAgICAgIGlmIChldmVudD8uZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5faW1wZXJzb25hdGlvbi5pbXBlcnNvbmF0ZVVzZXIoZXZlbnQuZGF0YS5faWQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2cub3Blbih0aGlzLl91c2VySW1wZXJzb25hdGVDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICBwYW5lbENsYXNzOiBcImRpYWxvZy1yZXNwb25zaXZlXCIsXG4gICAgICAgICAgICAgICAgZGF0YTogdGhpcy5pbmplY3RlZERhdGEoKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoJ0ltcGVyc29uYWJsZSBjb25maWcgc2VsZWN0IDonICsgZXZlbnQpO1xuICAgICAgICAgICAgICAgIGlmIChldmVudD8uZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5faW1wZXJzb25hdGlvbi5pbXBlcnNvbmF0ZUJ5Q29uZmlnKChldmVudC5kYXRhIGFzIFVzZXJJbXBlcnNvbmF0ZUNvbmZpZ01ldGFkYXRhKS5zdHJpbmdJZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbmplY3RlZERhdGEoKTogVXNlckltcGVyc29uYXRlSW5qZWN0aW9uRGF0YSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbW9tZW50KCk7XG4gICAgICAgIGxldCBmaWx0ZXJDYXNlc0ZpbHRlciA9IFNpbXBsZUZpbHRlci5mcm9tQ2FzZVF1ZXJ5KHtcbiAgICAgICAgICAgIHByb2Nlc3M6IHtcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiBVc2VySW1wZXJzb25hdGlvbkNvbnN0YW50cy5JTVBFUlNPTkFUSU9OX0NPTkZJR19ORVRfSURFTlRJRklFUlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHF1ZXJ5OiBgXG4gICAgICAgICAgICAoZGF0YVNldC5pbXBlcnNvbmF0b3JzLmtleVZhbHVlOiR7dGhpcy5fdXNlci51c2VyLmlkfSkgQU5EXG4gICAgICAgICAgICAoZGF0YVNldC5pc19hY3RpdmUuYm9vbGVhblZhbHVlOnRydWUpIEFORFxuICAgICAgICAgICAgKCghKF9leGlzdHNfOmRhdGFTZXQudmFsaWRfZnJvbS50aW1lc3RhbXBWYWx1ZSkpIE9SIChkYXRhU2V0LnZhbGlkX2Zyb20udGltZXN0YW1wVmFsdWU6PGAgKyBjdXJyZW50VGltZS52YWx1ZU9mKCkgKyBgKSkgQU5EXG4gICAgICAgICAgICAoKCEoX2V4aXN0c186ZGF0YVNldC52YWxpZF90by50aW1lc3RhbXBWYWx1ZSkpIE9SIChkYXRhU2V0LnZhbGlkX3RvLnRpbWVzdGFtcFZhbHVlOj4ke2N1cnJlbnRUaW1lLnZhbHVlT2YoKX0pKVxuICAgICAgICAgICAgYFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpbHRlcjogZmlsdGVyQ2FzZXNGaWx0ZXJcbiAgICAgICAgfSBhcyBVc2VySW1wZXJzb25hdGVJbmplY3Rpb25EYXRhXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzQWRtaW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyLmhhc0F1dGhvcml0eSgnUk9MRV9BRE1JTicpO1xuICAgIH1cblxufVxuIl19