ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
80 lines • 12 kB
JavaScript
import { Injectable, Injector } from '@angular/core';
import { Observable } from 'rxjs';
import { share } from 'rxjs/operators';
import { Codes } from '../../util/codes';
import { Util } from '../../util/util';
import { OntimizeBasePermissionsService } from './ontimize-base-permissions-service.class';
import * as i0 from "@angular/core";
export class OntimizePermissionsService extends OntimizeBasePermissionsService {
constructor(injector) {
super(injector);
this.injector = injector;
this.entity = '';
}
getDefaultServiceConfiguration() {
const servConfig = {};
servConfig[Codes.SESSION_KEY] = this.authService.getSessionInfo();
return servConfig;
}
configureService(permissionsConfig) {
const config = this.getDefaultServiceConfiguration();
this._urlBase = config.urlBase ? config.urlBase : this._appConfig.apiEndpoint;
this._user = config.session ? config.session.user : '';
if (Util.isDefined(permissionsConfig)) {
if (permissionsConfig.entity !== undefined) {
this.entity = permissionsConfig.entity;
}
if (permissionsConfig.keyColumn !== undefined) {
this.keyColumn = permissionsConfig.keyColumn;
}
if (permissionsConfig.valueColumn !== undefined) {
this.valueColumn = permissionsConfig.valueColumn;
}
}
}
loadPermissions() {
const kv = {};
kv[this.keyColumn] = this._user;
const av = [this.valueColumn];
const url = this._urlBase + '/query';
const options = {
headers: this.buildHeaders()
};
const body = JSON.stringify({
user: this._user,
sessionid: this.authService.getSessionInfo().id,
type: 1,
entity: this.entity,
kv: kv,
av: av
});
const self = this;
const dataObservable = new Observable(_innerObserver => {
self.httpClient.post(url, body, options).subscribe((res) => {
let permissions = {};
if ((res.code === Codes.ONTIMIZE_SUCCESSFUL_CODE) && Util.isDefined(res.data)) {
const response = res.data;
if ((response.length === 1) && Util.isObject(response[0])) {
const permissionsResp = response[0];
try {
permissions = permissionsResp.hasOwnProperty(self.valueColumn) ? JSON.parse(permissionsResp[self.valueColumn]) : {};
}
catch (e) {
console.warn('[OntimizePermissionsService: permissions parsing failed]');
}
}
}
_innerObserver.next(permissions);
}, error => {
_innerObserver.error(error);
}, () => _innerObserver.complete());
});
return dataObservable.pipe(share());
}
}
OntimizePermissionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OntimizePermissionsService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
OntimizePermissionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OntimizePermissionsService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OntimizePermissionsService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib250aW1pemUtcGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBRzNGLE1BQU0sT0FBTywwQkFBMkIsU0FBUSw4QkFBOEI7SUFTNUUsWUFBc0IsUUFBa0I7UUFDdEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREksYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVBqQyxXQUFNLEdBQVcsRUFBRSxDQUFDO0lBUzNCLENBQUM7SUFFRCw4QkFBOEI7UUFDNUIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsRSxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsaUJBQTRDO1FBQzNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMs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QUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ25DLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDVCxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O3dIQTVFVSwwQkFBMEI7NEhBQTFCLDBCQUEwQjs0RkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNoYXJlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wZXJtaXNzaW9ucy1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMvb250aW1pemUtcGVybWlzc2lvbnMtY29uZmlnLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT250aW1pemVCYXNlUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS1iYXNlLXBlcm1pc3Npb25zLXNlcnZpY2UuY2xhc3MnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT250aW1pemVQZXJtaXNzaW9uc1NlcnZpY2UgZXh0ZW5kcyBPbnRpbWl6ZUJhc2VQZXJtaXNzaW9uc1NlcnZpY2UgaW1wbGVtZW50cyBJUGVybWlzc2lvbnNTZXJ2aWNlIHtcblxuICBwdWJsaWMgZW50aXR5OiBzdHJpbmcgPSAnJztcbiAgcHVibGljIGtleUNvbHVtbjogc3RyaW5nO1xuICBwdWJsaWMgdmFsdWVDb2x1bW46IHN0cmluZztcblxuICBwcm90ZWN0ZWQgX3VzZXI6IHN0cmluZztcbiAgcHJvdGVjdGVkIF91cmxCYXNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgfVxuXG4gIGdldERlZmF1bHRTZXJ2aWNlQ29uZmlndXJhdGlvbigpOiBhbnkge1xuICAgIGNvbnN0IHNlcnZDb25maWcgPSB7fTtcbiAgICBzZXJ2Q29uZmlnW0NvZGVzLlNFU1NJT05fS0VZXSA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0U2Vzc2lvbkluZm8oKTtcbiAgICByZXR1cm4gc2VydkNvbmZpZztcbiAgfVxuXG4gIGNvbmZpZ3VyZVNlcnZpY2UocGVybWlzc2lvbnNDb25maWc6IE9udGltaXplUGVybWlzc2lvbnNDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldERlZmF1bHRTZXJ2aWNlQ29uZmlndXJhdGlvbigpO1xuICAgIHRoaXMuX3VybEJhc2UgPSBjb25maWcudXJsQmFzZSA/IGNvbmZpZy51cmxCYXNlIDogdGhpcy5fYXBwQ29uZmlnLmFwaUVuZHBvaW50O1xuICAgIHRoaXMuX3VzZXIgPSBjb25maWcuc2Vzc2lvbiA/IGNvbmZpZy5zZXNzaW9uLnVzZXIgOiAnJztcblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0NvbmZpZykpIHtcbiAgICAgIGlmIChwZXJtaXNzaW9uc0NvbmZpZy5lbnRpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmVudGl0eSA9IHBlcm1pc3Npb25zQ29uZmlnLmVudGl0eTtcbiAgICAgIH1cbiAgICAgIGlmIChwZXJtaXNzaW9uc0NvbmZpZy5rZXlDb2x1bW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmtleUNvbHVtbiA9IHBlcm1pc3Npb25zQ29uZmlnLmtleUNvbHVtbjtcbiAgICAgIH1cbiAgICAgIGlmIChwZXJtaXNzaW9uc0NvbmZpZy52YWx1ZUNvbHVtbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmFsdWVDb2x1bW4gPSBwZXJtaXNzaW9uc0NvbmZpZy52YWx1ZUNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsb2FkUGVybWlzc2lvbnMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBrdjogb2JqZWN0ID0ge307XG4gICAga3ZbdGhpcy5rZXlDb2x1bW5dID0gdGhpcy5fdXNlcjtcblxuICAgIGNvbnN0IGF2ID0gW3RoaXMudmFsdWVDb2x1bW5dO1xuXG4gICAgY29uc3QgdXJsID0gdGhpcy5fdXJsQmFzZSArICcvcXVlcnknO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiB0aGlzLmJ1aWxkSGVhZGVycygpXG4gICAgfTtcbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgdXNlcjogdGhpcy5fdXNlcixcbiAgICAgIHNlc3Npb25pZDogdGhpcy5hdXRoU2VydmljZS5nZXRTZXNzaW9uSW5mbygpLmlkLFxuICAgICAgdHlwZTogMSxcbiAgICAgIGVudGl0eTogdGhpcy5lbnRpdHksXG4gICAgICBrdjoga3YsXG4gICAgICBhdjogYXZcbiAgICB9KTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb25zdCBkYXRhT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+ID0gbmV3IE9ic2VydmFibGUoX2lubmVyT2JzZXJ2ZXIgPT4ge1xuICAgICAgc2VsZi5odHRwQ2xpZW50LnBvc3QodXJsLCBib2R5LCBvcHRpb25zKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIGxldCBwZXJtaXNzaW9ucyA9IHt9O1xuICAgICAgICBpZiAoKHJlcy5jb2RlID09PSBDb2Rlcy5PTlRJTUlaRV9TVUNDRVNTRlVMX0NPREUpICYmIFV0aWwuaXNEZWZpbmVkKHJlcy5kYXRhKSkge1xuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgaWYgKChyZXNwb25zZS5sZW5ndGggPT09IDEpICYmIFV0aWwuaXNPYmplY3QocmVzcG9uc2VbMF0pKSB7XG4gICAgICAgICAgICBjb25zdCBwZXJtaXNzaW9uc1Jlc3AgPSByZXNwb25zZVswXTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHBlcm1pc3Npb25zID0gcGVybWlzc2lvbnNSZXNwLmhhc093blByb3BlcnR5KHNlbGYudmFsdWVDb2x1bW4pID8gSlNPTi5wYXJzZShwZXJtaXNzaW9uc1Jlc3Bbc2VsZi52YWx1ZUNvbHVtbl0pIDoge307XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignW09udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlOiBwZXJtaXNzaW9ucyBwYXJzaW5nIGZhaWxlZF0nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgX2lubmVyT2JzZXJ2ZXIubmV4dChwZXJtaXNzaW9ucyk7XG4gICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgIF9pbm5lck9ic2VydmVyLmVycm9yKGVycm9yKTtcbiAgICAgIH0sICgpID0+IF9pbm5lck9ic2VydmVyLmNvbXBsZXRlKCkpO1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZS5waXBlKHNoYXJlKCkpO1xuICB9XG5cbn1cbiJdfQ==