UNPKG

@5minds/processcube_engine

Version:

The ProcessCube Engine. Stores and executes BPMNs.

240 lines • 10.6 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.IamServiceMock = exports.claimConfigs = void 0; const inversify_1 = require("inversify"); const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk"); const Configurator_1 = __importDefault(require("../Configurator")); const users = { defaultUser: { email: 'default@user.com', name: 'default_user', Default_Test_Lane: true, Lane: true, LaneA: true, LaneB: true, LaneC: true, [processcube_engine_sdk_1.claims.canDeleteProcessModel]: true, [processcube_engine_sdk_1.claims.canWriteProcessModel]: true, [processcube_engine_sdk_1.claims.canAccessExternalTasks]: true, [processcube_engine_sdk_1.claims.canSubscribeToEvents]: true, [processcube_engine_sdk_1.claims.canTerminateProcess]: true, [processcube_engine_sdk_1.claims.canTriggerMessages]: true, [processcube_engine_sdk_1.claims.canTriggerSignals]: true, [processcube_engine_sdk_1.claims.canRetryProcessInstance]: true, }, secondDefaultUser: { email: 'second_default@user.com', name: 'second_default_user', Default_Test_Lane: true, Lane: true, LaneA: true, LaneB: true, LaneC: true, [processcube_engine_sdk_1.claims.canDeleteProcessModel]: true, [processcube_engine_sdk_1.claims.canWriteProcessModel]: true, [processcube_engine_sdk_1.claims.canAccessExternalTasks]: true, [processcube_engine_sdk_1.claims.canSubscribeToEvents]: true, [processcube_engine_sdk_1.claims.canTriggerMessages]: true, [processcube_engine_sdk_1.claims.canTriggerSignals]: true, }, defaultUserWithoutTerminateProcessClaim: { Default_Test_Lane: true, Lane: true, LaneA: true, LaneB: true, LaneC: true, [processcube_engine_sdk_1.claims.canDeleteProcessModel]: true, [processcube_engine_sdk_1.claims.canWriteProcessModel]: true, [processcube_engine_sdk_1.claims.canAccessExternalTasks]: true, [processcube_engine_sdk_1.claims.canSubscribeToEvents]: true, [processcube_engine_sdk_1.claims.canTriggerMessages]: true, [processcube_engine_sdk_1.claims.canTriggerSignals]: true, [processcube_engine_sdk_1.claims.canRetryProcessInstance]: true, }, userWithoutDefaultLaneAccess: { Lane: true, LaneA: true, LaneB: true, LaneC: true, [processcube_engine_sdk_1.claims.canDeleteProcessModel]: true, [processcube_engine_sdk_1.claims.canWriteProcessModel]: true, [processcube_engine_sdk_1.claims.canAccessExternalTasks]: true, [processcube_engine_sdk_1.claims.canSubscribeToEvents]: true, [processcube_engine_sdk_1.claims.canTriggerMessages]: true, [processcube_engine_sdk_1.claims.canTriggerSignals]: true, }, userWithoutExternalTaskClaim: { Default_Test_Lane: true, Lane: true, LaneA: true, LaneB: true, LaneC: true, [processcube_engine_sdk_1.claims.canDeleteProcessModel]: true, [processcube_engine_sdk_1.claims.canWriteProcessModel]: true, [processcube_engine_sdk_1.claims.canSubscribeToEvents]: true, [processcube_engine_sdk_1.claims.canTerminateProcess]: true, [processcube_engine_sdk_1.claims.canTriggerMessages]: true, [processcube_engine_sdk_1.claims.canTriggerSignals]: true, [processcube_engine_sdk_1.claims.canRetryProcessInstance]: true, }, observer: { [processcube_engine_sdk_1.claims.canObserveEngine]: true, }, observerWithAdditionalLaneClaims: { [processcube_engine_sdk_1.claims.canObserveEngine]: true, Default_Test_Lane: true, Lane: true, LaneA: true, LaneB: true, LaneC: true, }, observerWithAdditionalWriteAccess: { [processcube_engine_sdk_1.claims.canObserveEngine]: true, [processcube_engine_sdk_1.claims.canDeleteProcessModel]: true, [processcube_engine_sdk_1.claims.canWriteProcessModel]: true, [processcube_engine_sdk_1.claims.canTerminateProcess]: true, [processcube_engine_sdk_1.claims.canTriggerMessages]: true, [processcube_engine_sdk_1.claims.canTriggerSignals]: true, [processcube_engine_sdk_1.claims.canRetryProcessInstance]: true, }, observerWithFullAccess: { [processcube_engine_sdk_1.claims.canObserveEngine]: true, Default_Test_Lane: true, Lane: true, LaneA: true, LaneB: true, LaneC: true, [processcube_engine_sdk_1.claims.canDeleteProcessModel]: true, [processcube_engine_sdk_1.claims.canWriteProcessModel]: true, [processcube_engine_sdk_1.claims.canTerminateProcess]: true, [processcube_engine_sdk_1.claims.canTriggerMessages]: true, [processcube_engine_sdk_1.claims.canTriggerSignals]: true, [processcube_engine_sdk_1.claims.canRetryProcessInstance]: true, }, superAdmin: { [processcube_engine_sdk_1.claims.canManageProcessInstances]: true, }, restrictedUser: { Default_Test_Lane: false, Lane: false, LaneA: false, LaneB: false, LaneC: false, [processcube_engine_sdk_1.claims.canDeleteProcessModel]: false, [processcube_engine_sdk_1.claims.canWriteProcessModel]: false, [processcube_engine_sdk_1.claims.canAccessExternalTasks]: false, [processcube_engine_sdk_1.claims.canSubscribeToEvents]: false, [processcube_engine_sdk_1.claims.canTerminateProcess]: false, [processcube_engine_sdk_1.claims.canTriggerMessages]: false, [processcube_engine_sdk_1.claims.canTriggerSignals]: false, [processcube_engine_sdk_1.claims.canRetryProcessInstance]: false, }, userWithAccessToSubLaneC: { LaneA: true, LaneC: true, }, userWithAccessToLaneA: { LaneA: true, [processcube_engine_sdk_1.claims.canWriteProcessModel]: true, }, userWithNoAccessToLaneA: { LaneB: true, LaneC: true, [processcube_engine_sdk_1.claims.canWriteProcessModel]: true, }, expiresIn0SecIdentity: { Lane: true, [processcube_engine_sdk_1.claims.canTriggerMessages]: true, [processcube_engine_sdk_1.claims.canTriggerSignals]: true, }, expiresIn2SecIdentity: { Lane: true, [processcube_engine_sdk_1.claims.canTriggerMessages]: true, [processcube_engine_sdk_1.claims.canTriggerSignals]: true, }, }; exports.claimConfigs = users; const defaultRootAccessToken = 'ZHVtbXlfdG9rZW4='; const internalToken = 'QXRsYXNFbmdpbmVJbnRlcm5hbFVzZXI='; /** * Used for integrationtests only. */ let IamServiceMock = class IamServiceMock { config; constructor() { this.config = Configurator_1.default.get('iam'); } getAuthorityAddress() { return 'http://localhost:11560'; } ensureHasClaim(identity, claimName, claimValue = true, excludeAdmins = true) { const identityHasclaim = this.checkIfIdentityHasClaim(identity, claimName, claimValue, excludeAdmins); if (!identityHasclaim) { this.throwForbiddenError(identity, claimName, claimValue, identity.claims[claimName]); } } checkIfIdentityHasClaim(identity, claimName, claimValue = true, excludeAdmins = true) { const isSuperAdmin = identity.claims && identity.claims[processcube_engine_sdk_1.claims.canManageProcessInstances] != undefined; const isInternalUser = identity.userId === 'AtlasEngineInternalUser'; if (isInternalUser || (isSuperAdmin && excludeAdmins)) { return true; } if (this.checkIfTokenIsRootAccessToken(identity.token)) { return process.env.iam__allowAnonymousRootAccess != 'false' && excludeAdmins; } if (identity.userId === 'forbiddenUser') { return false; } const userDoesNotHaveClaim = identity.claims && identity.claims[claimName] == undefined; if (userDoesNotHaveClaim) { return false; } if (claimValue) { return identity.claims[claimName] == claimValue; } return true; } checkIfUserIsSuperAdmin(identity) { if (this.checkIfTokenIsRootAccessToken(identity.token)) { return process.env.iam__allowAnonymousRootAccess != 'false'; } return identity.claims != null && identity.claims[processcube_engine_sdk_1.claims.canManageProcessInstances] != undefined; } checkIfUserIsObserver(identity) { return this.checkIfIdentityHasClaim(identity, processcube_engine_sdk_1.claims.canObserveEngine); } checkIfTokenIsInternalToken(token) { return token === internalToken; } checkIfTokenIsRootAccessToken(token) { return this.config?.rootAccessToken ? token === this.config.rootAccessToken : token === defaultRootAccessToken; } throwForbiddenError(identity, claimName, requiredClaimValue, actualClaimValue, msg) { const forbiddenError = new processcube_engine_sdk_1.ForbiddenError(msg || 'access denied'); forbiddenError.additionalInformation = { identity: identity, claim: claimName, requiredClaimValue: requiredClaimValue, actualClaimValue: actualClaimValue, }; throw forbiddenError; } }; exports.IamServiceMock = IamServiceMock; exports.IamServiceMock = IamServiceMock = __decorate([ (0, inversify_1.injectable)(), __metadata("design:paramtypes", []) ], IamServiceMock); //# sourceMappingURL=IamServiceMock.js.map