@steedos/process 2.2.52-beta.7 → 2.2.53-beta.3

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/LICENSE.txt CHANGED
@@ -6,14 +6,11 @@ To determine under which license you may use a file from the Steedos source code
6
6
  please resort to the header of that file.
7
7
 
8
8
  If the file has no header, the following rules apply
9
- 1. project templates are licensed under MIT, see License.MIT.txt
10
- 2. enterprise features are licensed under Steedos Enterprise Terms, see License.enterprise.txt
11
- 3. source code that is neither (1) nor (2) is licensed under AGPL, see License.AGPL.txt
9
+ 1. enterprise features are licensed under Steedos Enterprise Terms, see License.enterprise.txt
10
+ 2. source code that is neither (1) is licensed under MIT, see https://opensource.org/licenses/MIT
12
11
 
13
12
  On request, licenses under different terms are available.
14
13
 
15
- Project templates can be found in the folders steedos-projects/
16
-
17
14
  Source code of enterprise features are files that
18
15
  * are in folders named "ee" or start with "ee_", or in subfolders of such folders.
19
16
  * contain the strings "ee_" in its filename name.
package/lib/approve.js CHANGED
@@ -1,29 +1,75 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.approve = void 0;
4
- const process_manager_1 = require("./process_manager");
5
- const permission_manager_1 = require("./permission_manager");
6
- const objectql_1 = require("@steedos/objectql");
7
- const approve = async (req, res) => {
8
- try {
9
- const urlParams = req.params;
10
- // const objectName = urlParams.objectName;
11
- const instanceHistoryId = urlParams.record;
12
- const userSession = req.user;
13
- const body = req.body;
14
- const comment = body.comment;
15
- const approver = body.approver;
16
- if (await (0, permission_manager_1.allowApprover)(instanceHistoryId, userSession)) {
17
- const workitem = await (0, process_manager_1.getProcessInstanceWorkitem)(instanceHistoryId, userSession);
18
- await (0, process_manager_1.processInstanceWorkitemApprove)(workitem._id, userSession, comment, approver);
19
- return res.status(200).send({ state: 'SUCCESS' });
20
- }
21
- throw new objectql_1.SteedosError("process_approval_error_NoApproval");
22
- }
23
- catch (error) {
24
- console.log(error);
25
- return (0, objectql_1.sendError)(res, error, 200);
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
26
36
  }
27
37
  };
38
+ exports.__esModule = true;
39
+ exports.approve = void 0;
40
+ var process_manager_1 = require("./process_manager");
41
+ var permission_manager_1 = require("./permission_manager");
42
+ var objectql_1 = require("@steedos/objectql");
43
+ var approve = function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
44
+ var urlParams, instanceHistoryId, userSession, body, comment, approver, workitem, error_1;
45
+ return __generator(this, function (_a) {
46
+ switch (_a.label) {
47
+ case 0:
48
+ _a.trys.push([0, 5, , 6]);
49
+ urlParams = req.params;
50
+ instanceHistoryId = urlParams.record;
51
+ userSession = req.user;
52
+ body = req.body;
53
+ comment = body.comment;
54
+ approver = body.approver;
55
+ return [4 /*yield*/, (0, permission_manager_1.allowApprover)(instanceHistoryId, userSession)];
56
+ case 1:
57
+ if (!_a.sent()) return [3 /*break*/, 4];
58
+ return [4 /*yield*/, (0, process_manager_1.getProcessInstanceWorkitem)(instanceHistoryId, userSession)];
59
+ case 2:
60
+ workitem = _a.sent();
61
+ return [4 /*yield*/, (0, process_manager_1.processInstanceWorkitemApprove)(workitem._id, userSession, comment, approver)];
62
+ case 3:
63
+ _a.sent();
64
+ return [2 /*return*/, res.status(200).send({ state: 'SUCCESS' })];
65
+ case 4: throw new objectql_1.SteedosError("process_approval_error_NoApproval");
66
+ case 5:
67
+ error_1 = _a.sent();
68
+ console.log(error_1);
69
+ return [2 /*return*/, (0, objectql_1.sendError)(res, error_1, 200)];
70
+ case 6: return [2 /*return*/];
71
+ }
72
+ });
73
+ }); };
28
74
  exports.approve = approve;
29
75
  //# sourceMappingURL=approve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"approve.js","sourceRoot":"","sources":["../src/approve.ts"],"names":[],"mappings":";;;AACA,uDAA8F;AAC9F,6DAAqD;AAErD,gDAA2D;AAMpD,MAAM,OAAO,GAAG,KAAK,EAAE,GAAY,EAAE,GAAqB,EAAE,EAAE;IACjE,IAAI;QACA,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,2CAA2C;QAC3C,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC;QAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAG,MAAM,IAAA,kCAAa,EAAC,iBAAiB,EAAE,WAAW,CAAC,EAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,IAAA,4CAA0B,EAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAClF,MAAM,IAAA,gDAA8B,EAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC;SACnD;QACD,MAAM,IAAI,uBAAY,CAAC,mCAAmC,CAAC,CAAC;KAC/D;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,IAAA,oBAAS,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;KACrC;AACL,CAAC,CAAA;AAnBY,QAAA,OAAO,WAmBnB"}
1
+ {"version":3,"file":"approve.js","sourceRoot":"","sources":["../src/approve.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAA8F;AAC9F,2DAAqD;AAErD,8CAA2D;AAMpD,IAAM,OAAO,GAAG,UAAO,GAAY,EAAE,GAAkB;;;;;;gBAEhD,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;gBAEvB,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC;gBACrC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;gBACvB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBAChB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBACvB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC5B,qBAAM,IAAA,kCAAa,EAAC,iBAAiB,EAAE,WAAW,CAAC,EAAA;;qBAAnD,SAAmD,EAAnD,wBAAmD;gBACjC,qBAAM,IAAA,4CAA0B,EAAC,iBAAiB,EAAE,WAAW,CAAC,EAAA;;gBAA3E,QAAQ,GAAG,SAAgE;gBACjF,qBAAM,IAAA,gDAA8B,EAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAA;;gBAAlF,SAAkF,CAAC;gBACnF,sBAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC,EAAC;oBAEpD,MAAM,IAAI,uBAAY,CAAC,mCAAmC,CAAC,CAAC;;;gBAE5D,OAAO,CAAC,GAAG,CAAC,OAAK,CAAC,CAAC;gBACnB,sBAAO,IAAA,oBAAS,EAAC,GAAG,EAAE,OAAK,EAAE,GAAG,CAAC,EAAC;;;;KAEzC,CAAA;AAnBY,QAAA,OAAO,WAmBnB"}
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.__esModule = true;
3
3
  exports.processExpress = void 0;
4
- const auth_1 = require("@steedos/auth");
5
- const submit_1 = require("./submit");
6
- const approve_1 = require("./approve");
7
- const reject_1 = require("./reject");
8
- const reassign_1 = require("./reassign");
9
- const recall_1 = require("./recall");
10
- const permission_1 = require("./permission");
11
- const express = require('express');
4
+ var auth_1 = require("@steedos/auth");
5
+ var submit_1 = require("./submit");
6
+ var approve_1 = require("./approve");
7
+ var reject_1 = require("./reject");
8
+ var reassign_1 = require("./reassign");
9
+ var recall_1 = require("./recall");
10
+ var permission_1 = require("./permission");
11
+ var express = require('express');
12
12
  exports.processExpress = express.Router();
13
13
  exports.processExpress.post('/api/v4/process/submit/:objectName/:record', auth_1.requireAuthentication, submit_1.submit);
14
14
  exports.processExpress.post('/api/v4/process/approve/:objectName/:record', auth_1.requireAuthentication, approve_1.approve);
@@ -1 +1 @@
1
- {"version":3,"file":"express-middleware.js","sourceRoot":"","sources":["../src/express-middleware.ts"],"names":[],"mappings":";;;AAAA,wCAAsD;AAEtD,qCAAkC;AAClC,uCAAoC;AACpC,qCAAkC;AAClC,yCAAsC;AACtC,qCAAkC;AAClC,6CAAgH;AAChH,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAGtB,QAAA,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;AAE/C,sBAAc,CAAC,IAAI,CAAC,4CAA4C,EAAE,4BAAqB,EAAE,eAAM,CAAC,CAAC;AAEjG,sBAAc,CAAC,IAAI,CAAC,6CAA6C,EAAE,4BAAqB,EAAE,iBAAO,CAAC,CAAC;AAEnG,sBAAc,CAAC,IAAI,CAAC,4CAA4C,EAAE,4BAAqB,EAAE,eAAM,CAAC,CAAC;AAEjG,sBAAc,CAAC,IAAI,CAAC,8CAA8C,EAAE,4BAAqB,EAAE,mBAAQ,CAAC,CAAC;AAErG,oGAAoG;AAEpG,sBAAc,CAAC,IAAI,CAAC,4CAA4C,EAAE,4BAAqB,EAAE,eAAM,CAAC,CAAC;AAEjG,sBAAc,CAAC,GAAG,CAAC,uDAAuD,EAAE,4BAAqB,EAAE,yCAA4B,CAAC,CAAC;AAEjI,sBAAc,CAAC,GAAG,CAAC,yDAAyD,EAAE,4BAAqB,EAAE,6CAAgC,CAAC,CAAC;AAEvI,sBAAc,CAAC,GAAG,CAAC,uDAAuD,EAAE,4BAAqB,EAAE,8BAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"express-middleware.js","sourceRoot":"","sources":["../src/express-middleware.ts"],"names":[],"mappings":";;;AAAA,sCAAsD;AAEtD,mCAAkC;AAClC,qCAAoC;AACpC,mCAAkC;AAClC,uCAAsC;AACtC,mCAAkC;AAClC,2CAAgH;AAChH,IAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAGtB,QAAA,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;AAE/C,sBAAc,CAAC,IAAI,CAAC,4CAA4C,EAAE,4BAAqB,EAAE,eAAM,CAAC,CAAC;AAEjG,sBAAc,CAAC,IAAI,CAAC,6CAA6C,EAAE,4BAAqB,EAAE,iBAAO,CAAC,CAAC;AAEnG,sBAAc,CAAC,IAAI,CAAC,4CAA4C,EAAE,4BAAqB,EAAE,eAAM,CAAC,CAAC;AAEjG,sBAAc,CAAC,IAAI,CAAC,8CAA8C,EAAE,4BAAqB,EAAE,mBAAQ,CAAC,CAAC;AAErG,oGAAoG;AAEpG,sBAAc,CAAC,IAAI,CAAC,4CAA4C,EAAE,4BAAqB,EAAE,eAAM,CAAC,CAAC;AAEjG,sBAAc,CAAC,GAAG,CAAC,uDAAuD,EAAE,4BAAqB,EAAE,yCAA4B,CAAC,CAAC;AAEjI,sBAAc,CAAC,GAAG,CAAC,yDAAyD,EAAE,4BAAqB,EAAE,6CAAgC,CAAC,CAAC;AAEvI,sBAAc,CAAC,GAAG,CAAC,uDAAuD,EAAE,4BAAqB,EAAE,8BAAiB,CAAC,CAAC"}
package/lib/index.js CHANGED
@@ -1,6 +1,17 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ exports.__esModule = true;
3
14
  exports.processExpress = void 0;
4
15
  var express_middleware_1 = require("./express-middleware");
5
- Object.defineProperty(exports, "processExpress", { enumerable: true, get: function () { return express_middleware_1.processExpress; } });
16
+ __createBinding(exports, express_middleware_1, "processExpress");
6
17
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AAA7C,oHAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,2DAAsD;AAA7C,iEAAc"}
@@ -1,47 +1,98 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendNotifications = void 0;
4
- const objectql = require('@steedos/objectql');
5
- const objectql_1 = require("@steedos/objectql");
6
- const Fiber = require('fibers');
7
- const sendNotifications = async (from, to, { instanceHistory = null, instance = null, status }) => {
8
- if (!to) {
9
- return;
10
- }
11
- if (!instance) {
12
- instance = await objectql.getObject("process_instance").findOne(instanceHistory.process_instance);
13
- }
14
- var fromUser = await objectql.getObject("users").findOne(from);
15
- const targetObjectName = instance.target_object.o;
16
- const targetObject = objectql.getObject(targetObjectName);
17
- var relatedDoc = await targetObject.findOne(instance.target_object.ids[0]);
18
- let relatedDocName = relatedDoc.name; //TODO
19
- const lng = (0, objectql_1.getUserLocale)(fromUser);
20
- var notificationTitle = TAPi18n.__(`process_notification_${status}_title`, { submitter: fromUser.name, recordName: relatedDocName }, lng);
21
- var notificationBody = targetObject.label;
22
- let linkToObjectName, linkToId;
23
- if (["approved", "rejected"].indexOf(status) > -1) {
24
- linkToObjectName = targetObjectName;
25
- linkToId = relatedDoc._id;
26
- }
27
- else {
28
- linkToObjectName = "process_instance_history";
29
- linkToId = instanceHistory._id;
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
30
36
  }
31
- var notificationDoc = {
32
- name: notificationTitle,
33
- body: notificationBody,
34
- related_to: {
35
- o: linkToObjectName,
36
- ids: [linkToId]
37
- },
38
- related_name: relatedDocName,
39
- from: `Process ${status}`,
40
- space: instance.space
41
- };
42
- Fiber(function () {
43
- Creator.addNotifications(notificationDoc, null, [to]);
44
- }).run();
37
+ };
38
+ exports.__esModule = true;
39
+ exports.sendNotifications = void 0;
40
+ var objectql = require('@steedos/objectql');
41
+ var objectql_1 = require("@steedos/objectql");
42
+ var Fiber = require('fibers');
43
+ var sendNotifications = function (from, to, _a) {
44
+ var _b = _a.instanceHistory, instanceHistory = _b === void 0 ? null : _b, _c = _a.instance, instance = _c === void 0 ? null : _c, status = _a.status;
45
+ return __awaiter(void 0, void 0, void 0, function () {
46
+ var fromUser, targetObjectName, targetObject, relatedDoc, relatedDocName, lng, notificationTitle, notificationBody, linkToObjectName, linkToId, notificationDoc;
47
+ return __generator(this, function (_d) {
48
+ switch (_d.label) {
49
+ case 0:
50
+ if (!to) {
51
+ return [2 /*return*/];
52
+ }
53
+ if (!!instance) return [3 /*break*/, 2];
54
+ return [4 /*yield*/, objectql.getObject("process_instance").findOne(instanceHistory.process_instance)];
55
+ case 1:
56
+ instance = _d.sent();
57
+ _d.label = 2;
58
+ case 2: return [4 /*yield*/, objectql.getObject("users").findOne(from)];
59
+ case 3:
60
+ fromUser = _d.sent();
61
+ targetObjectName = instance.target_object.o;
62
+ targetObject = objectql.getObject(targetObjectName);
63
+ return [4 /*yield*/, targetObject.findOne(instance.target_object.ids[0])];
64
+ case 4:
65
+ relatedDoc = _d.sent();
66
+ relatedDocName = relatedDoc.name;
67
+ lng = (0, objectql_1.getUserLocale)(fromUser);
68
+ notificationTitle = TAPi18n.__("process_notification_".concat(status, "_title"), { submitter: fromUser.name, recordName: relatedDocName }, lng);
69
+ notificationBody = targetObject.label;
70
+ if (["approved", "rejected"].indexOf(status) > -1) {
71
+ linkToObjectName = targetObjectName;
72
+ linkToId = relatedDoc._id;
73
+ }
74
+ else {
75
+ linkToObjectName = "process_instance_history";
76
+ linkToId = instanceHistory._id;
77
+ }
78
+ notificationDoc = {
79
+ name: notificationTitle,
80
+ body: notificationBody,
81
+ related_to: {
82
+ o: linkToObjectName,
83
+ ids: [linkToId]
84
+ },
85
+ related_name: relatedDocName,
86
+ from: "Process ".concat(status),
87
+ space: instance.space
88
+ };
89
+ Fiber(function () {
90
+ Creator.addNotifications(notificationDoc, null, [to]);
91
+ }).run();
92
+ return [2 /*return*/];
93
+ }
94
+ });
95
+ });
45
96
  };
46
97
  exports.sendNotifications = sendNotifications;
47
98
  //# sourceMappingURL=notifications.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC9C,gDAAkD;AAClD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAIzB,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAU,EAAE,EAAC,eAAe,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,MAAM,EAAC,EAAC,EAAE;IAClH,IAAG,CAAC,EAAE,EAAC;QACH,OAAO;KACV;IACD,IAAG,CAAC,QAAQ,EAAC;QACT,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;KACrG;IACD,IAAI,QAAQ,GAAI,MAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC1D,IAAI,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM;IAC5C,MAAM,GAAG,GAAG,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,iBAAiB,GAAG,OAAO,CAAC,EAAE,CAAC,wBAAwB,MAAM,QAAQ,EAAE,EAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAC,EAAE,GAAG,CAAC,CAAC;IACxI,IAAI,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC;IAC1C,IAAI,gBAAgB,EAAE,QAAQ,CAAC;IAC/B,IAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC;QAC7C,gBAAgB,GAAG,gBAAgB,CAAC;QACpC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC;KAC7B;SACG;QACA,gBAAgB,GAAG,0BAA0B,CAAC;QAC9C,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAA;KACjC;IACD,IAAI,eAAe,GAAG;QAClB,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE;YACR,CAAC,EAAE,gBAAgB;YACnB,GAAG,EAAE,CAAC,QAAQ,CAAC;SAClB;QACD,YAAY,EAAE,cAAc;QAC5B,IAAI,EAAE,WAAW,MAAM,EAAE;QACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;KACxB,CAAC;IAEF,KAAK,CAAC;QACF,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACb,CAAC,CAAA;AAvCY,QAAA,iBAAiB,qBAuC7B"}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC9C,8CAAkD;AAClD,IAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAIzB,IAAM,iBAAiB,GAAG,UAAO,IAAY,EAAE,EAAU,EAAE,EAAiD;QAAhD,uBAAsB,EAAtB,eAAe,mBAAG,IAAI,KAAA,EAAE,gBAAe,EAAf,QAAQ,mBAAG,IAAI,KAAA,EAAE,MAAM,YAAA;;;;;;oBAC9G,IAAG,CAAC,EAAE,EAAC;wBACH,sBAAO;qBACV;yBACE,CAAC,QAAQ,EAAT,wBAAS;oBACG,qBAAM,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAA;;oBAAjG,QAAQ,GAAG,SAAsF,CAAC;;wBAEtF,qBAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAA;;oBAA3D,QAAQ,GAAI,SAA+C;oBACzD,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;oBAC5C,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;oBACzC,qBAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAA;;oBAAtE,UAAU,GAAG,SAAyD;oBACtE,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC/B,GAAG,GAAG,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC;oBAChC,iBAAiB,GAAG,OAAO,CAAC,EAAE,CAAC,+BAAwB,MAAM,WAAQ,EAAE,EAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAC,EAAE,GAAG,CAAC,CAAC;oBACpI,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC;oBAE1C,IAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC;wBAC7C,gBAAgB,GAAG,gBAAgB,CAAC;wBACpC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC;qBAC7B;yBACG;wBACA,gBAAgB,GAAG,0BAA0B,CAAC;wBAC9C,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAA;qBACjC;oBACG,eAAe,GAAG;wBAClB,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,gBAAgB;wBACtB,UAAU,EAAE;4BACR,CAAC,EAAE,gBAAgB;4BACnB,GAAG,EAAE,CAAC,QAAQ,CAAC;yBAClB;wBACD,YAAY,EAAE,cAAc;wBAC5B,IAAI,EAAE,kBAAW,MAAM,CAAE;wBACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;qBACxB,CAAC;oBAEF,KAAK,CAAC;wBACF,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1D,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;;;;;CACZ,CAAA;AAvCY,QAAA,iBAAiB,qBAuC7B"}
package/lib/permission.js CHANGED
@@ -1,60 +1,121 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.allowObjectSubmit = exports.allowApproverByInstanceHistoryId = exports.allowRecallByProcessInstance = void 0;
4
- const process_manager_1 = require("./process_manager");
5
- const permission_manager_1 = require("./permission_manager");
6
- const allowRecallByProcessInstance = async (req, res) => {
7
- try {
8
- const urlParams = req.params;
9
- const objectName = urlParams.objectName;
10
- const recordId = urlParams.record;
11
- const userSession = req.user;
12
- const pendingInstances = await (0, process_manager_1.getReocrdProcessInstance)(objectName, recordId, 'pending', userSession);
13
- if (pendingInstances.length > 0) {
14
- const instanceId = pendingInstances[0]._id;
15
- if (await (0, permission_manager_1.allowRecall)(instanceId, userSession)) {
16
- return res.status(200).send({ allowRecall: true });
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
17
32
  }
18
- }
19
- return res.status(200).send({ allowRecall: false });
20
- }
21
- catch (error) {
22
- return res.status(200).send({ allowRecall: false });
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
23
36
  }
24
37
  };
38
+ exports.__esModule = true;
39
+ exports.allowObjectSubmit = exports.allowApproverByInstanceHistoryId = exports.allowRecallByProcessInstance = void 0;
40
+ var process_manager_1 = require("./process_manager");
41
+ var permission_manager_1 = require("./permission_manager");
42
+ var allowRecallByProcessInstance = function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
43
+ var urlParams, objectName, recordId, userSession, pendingInstances, instanceId, error_1;
44
+ return __generator(this, function (_a) {
45
+ switch (_a.label) {
46
+ case 0:
47
+ _a.trys.push([0, 4, , 5]);
48
+ urlParams = req.params;
49
+ objectName = urlParams.objectName;
50
+ recordId = urlParams.record;
51
+ userSession = req.user;
52
+ return [4 /*yield*/, (0, process_manager_1.getReocrdProcessInstance)(objectName, recordId, 'pending', userSession)];
53
+ case 1:
54
+ pendingInstances = _a.sent();
55
+ if (!(pendingInstances.length > 0)) return [3 /*break*/, 3];
56
+ instanceId = pendingInstances[0]._id;
57
+ return [4 /*yield*/, (0, permission_manager_1.allowRecall)(instanceId, userSession)];
58
+ case 2:
59
+ if (_a.sent()) {
60
+ return [2 /*return*/, res.status(200).send({ allowRecall: true })];
61
+ }
62
+ _a.label = 3;
63
+ case 3: return [2 /*return*/, res.status(200).send({ allowRecall: false })];
64
+ case 4:
65
+ error_1 = _a.sent();
66
+ return [2 /*return*/, res.status(200).send({ allowRecall: false })];
67
+ case 5: return [2 /*return*/];
68
+ }
69
+ });
70
+ }); };
25
71
  exports.allowRecallByProcessInstance = allowRecallByProcessInstance;
26
- const allowApproverByInstanceHistoryId = async (req, res) => {
27
- try {
28
- const urlParams = req.params;
29
- // const objectName = urlParams.objectName;
30
- const instanceHistoryId = urlParams.record;
31
- const userSession = req.user;
32
- if (await (0, permission_manager_1.allowApprover)(instanceHistoryId, userSession)) {
33
- return res.status(200).send({ allowApprover: true });
72
+ var allowApproverByInstanceHistoryId = function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
73
+ var urlParams, instanceHistoryId, userSession, error_2;
74
+ return __generator(this, function (_a) {
75
+ switch (_a.label) {
76
+ case 0:
77
+ _a.trys.push([0, 2, , 3]);
78
+ urlParams = req.params;
79
+ instanceHistoryId = urlParams.record;
80
+ userSession = req.user;
81
+ return [4 /*yield*/, (0, permission_manager_1.allowApprover)(instanceHistoryId, userSession)];
82
+ case 1:
83
+ if (_a.sent()) {
84
+ return [2 /*return*/, res.status(200).send({ allowApprover: true })];
85
+ }
86
+ return [2 /*return*/, res.status(200).send({ allowApprover: false })];
87
+ case 2:
88
+ error_2 = _a.sent();
89
+ console.log(error_2);
90
+ return [2 /*return*/, res.status(200).send({ allowApprover: false })];
91
+ case 3: return [2 /*return*/];
34
92
  }
35
- return res.status(200).send({ allowApprover: false });
36
- }
37
- catch (error) {
38
- console.log(error);
39
- return res.status(200).send({ allowApprover: false });
40
- }
41
- };
93
+ });
94
+ }); };
42
95
  exports.allowApproverByInstanceHistoryId = allowApproverByInstanceHistoryId;
43
- const allowObjectSubmit = async (req, res) => {
44
- try {
45
- const urlParams = req.params;
46
- const objectName = urlParams.objectName;
47
- const recordId = urlParams.record;
48
- const userSession = req.user;
49
- if (await (0, permission_manager_1.allowSubmit)(objectName, recordId, userSession)) {
50
- return res.status(200).send({ allowSubmit: true });
96
+ var allowObjectSubmit = function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
97
+ var urlParams, objectName, recordId, userSession, error_3;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ _a.trys.push([0, 2, , 3]);
102
+ urlParams = req.params;
103
+ objectName = urlParams.objectName;
104
+ recordId = urlParams.record;
105
+ userSession = req.user;
106
+ return [4 /*yield*/, (0, permission_manager_1.allowSubmit)(objectName, recordId, userSession)];
107
+ case 1:
108
+ if (_a.sent()) {
109
+ return [2 /*return*/, res.status(200).send({ allowSubmit: true })];
110
+ }
111
+ return [2 /*return*/, res.status(200).send({ allowSubmit: false })];
112
+ case 2:
113
+ error_3 = _a.sent();
114
+ console.log('error', error_3);
115
+ return [2 /*return*/, res.status(200).send({ allowSubmit: false })];
116
+ case 3: return [2 /*return*/];
51
117
  }
52
- return res.status(200).send({ allowSubmit: false });
53
- }
54
- catch (error) {
55
- console.log('error', error);
56
- return res.status(200).send({ allowSubmit: false });
57
- }
58
- };
118
+ });
119
+ }); };
59
120
  exports.allowObjectSubmit = allowObjectSubmit;
60
121
  //# sourceMappingURL=permission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permission.js","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"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"}