@openinc/parse-server-opendash 3.4.3 → 3.5.1
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.
|
@@ -82,7 +82,7 @@ async function assignUsersAndRoles(ticket, assignedTo, fetchOptions, assigningUs
|
|
|
82
82
|
translation: {
|
|
83
83
|
ticketName: ticket.get("title"),
|
|
84
84
|
ticketId: ticket.id,
|
|
85
|
-
|
|
85
|
+
username: (0, openinc_openservice_save_ticket_data_1.getUsername)(assigningUser) ?? "System",
|
|
86
86
|
role: assignedTo.get("label"),
|
|
87
87
|
},
|
|
88
88
|
},
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getAllPermissions = getAllPermissions;
|
|
4
4
|
exports.default = initPermissions;
|
|
5
5
|
const __1 = require("..");
|
|
6
|
+
const catchError_1 = require("../../../helper/catchError");
|
|
6
7
|
const types_1 = require("../../../types");
|
|
7
8
|
/**
|
|
8
9
|
* Returns all permissions defined in types/Permissions.ts as an array of Permission objects.
|
|
@@ -47,34 +48,63 @@ function createPermission(input) {
|
|
|
47
48
|
*/
|
|
48
49
|
async function registerPermissions(tenant) {
|
|
49
50
|
console.log("[@openinc/parse-server-opendash] Register all permissions");
|
|
50
|
-
getAllPermissions().
|
|
51
|
-
new Parse.Query(types_1.Permission)
|
|
51
|
+
return getAllPermissions().map(async (permission) => {
|
|
52
|
+
const [resultError, result] = await (0, catchError_1.catchError)(new Parse.Query(types_1.Permission)
|
|
52
53
|
.equalTo("key", permission.key)
|
|
53
54
|
.equalTo("tenant", tenant)
|
|
54
|
-
.first({ useMasterKey: true })
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
55
|
+
.first({ useMasterKey: true }));
|
|
56
|
+
if (resultError) {
|
|
57
|
+
console.error("[@openinc/parse-server-opendash] Error while checking permission", permission.key, resultError);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (!result) {
|
|
61
|
+
console.log("[@openinc/parse-server-opendash] Create permission", permission.key);
|
|
62
|
+
const newPermission = new types_1.Permission();
|
|
63
|
+
newPermission.set("key", permission.key);
|
|
64
|
+
newPermission.set("label", permission.label);
|
|
65
|
+
newPermission.set("tenant", tenant);
|
|
66
|
+
newPermission.set("description", permission.description);
|
|
67
|
+
await newPermission.save({}, { useMasterKey: true });
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
console.log("[@openinc/parse-server-opendash] Permission already exists", permission.key);
|
|
71
|
+
}
|
|
69
72
|
});
|
|
70
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Set read access for all admin roles to admin overview permission
|
|
76
|
+
*/
|
|
77
|
+
async function ensureDefaultAdminAccess(tenant) {
|
|
78
|
+
console.log("[@openinc/parse-server-opendash] Ensure default admin access permissions");
|
|
79
|
+
const [resultError, result] = await (0, catchError_1.catchError)(new Parse.Query(types_1.Permission)
|
|
80
|
+
.equalTo("key", __1.Permissions.OpenINCStack.adminoverview)
|
|
81
|
+
.equalTo("tenant", tenant)
|
|
82
|
+
.first({ useMasterKey: true }));
|
|
83
|
+
if (resultError) {
|
|
84
|
+
console.error("[@openinc/parse-server-opendash] Error while checking permission", __1.Permissions.OpenINCStack.adminoverview, resultError);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (result) {
|
|
88
|
+
const acl = result.getACL() || new Parse.ACL();
|
|
89
|
+
acl.setRoleReadAccess(`od-tenant-admin-${tenant.id}`, true);
|
|
90
|
+
acl.setRoleReadAccess(`od-tenant-admin`, true);
|
|
91
|
+
acl.setRoleReadAccess(`od-admin`, true);
|
|
92
|
+
acl.setRoleWriteAccess(`od-admin`, true);
|
|
93
|
+
result.setACL(acl);
|
|
94
|
+
await result.save(null, { useMasterKey: true });
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
console.log("[@openinc/parse-server-opendash] Permission not found", __1.Permissions.OpenINCStack.adminoverview);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
71
100
|
async function initPermissions() {
|
|
72
101
|
const tenants = await new Parse.Query(types_1.Tenant)
|
|
73
102
|
.descending("createdAt")
|
|
74
103
|
.find({ useMasterKey: true });
|
|
75
104
|
if (tenants) {
|
|
76
105
|
for await (const tenant of tenants) {
|
|
77
|
-
await registerPermissions(tenant);
|
|
106
|
+
await Promise.all(await registerPermissions(tenant));
|
|
107
|
+
await ensureDefaultAdminAccess(tenant);
|
|
78
108
|
}
|
|
79
109
|
}
|
|
80
110
|
}
|
|
@@ -13,30 +13,10 @@ export declare namespace Permissions {
|
|
|
13
13
|
machinelog_message = "maintenance:can-create-machinelog-message",
|
|
14
14
|
global = "maintenance:can-access-global",
|
|
15
15
|
monitor = "maintenance:can-access-monitor",
|
|
16
|
-
material = "maintenance:can-access-material",
|
|
17
|
-
scheduletemplate = "maintenance:can-access-scheduletemplate",
|
|
18
16
|
monitoring = "maintenance:can-access-monitoring",
|
|
19
|
-
downtime = "maintenance:can-access-downtime",
|
|
20
|
-
restriction = "maintenance:can-access-restriction",
|
|
21
|
-
frequency = "maintenance:can-access-frequency",
|
|
22
|
-
downtimeField0 = "maintenance:can-access-downtime-field-0",
|
|
23
|
-
downtimeField1 = "maintenance:can-access-downtime-field-1",
|
|
24
|
-
downtimeField2 = "maintenance:can-access-downtime-field-2",
|
|
25
|
-
downtimeField3 = "maintenance:can-access-downtime-field-3",
|
|
26
|
-
downtimeField4 = "maintenance:can-access-downtime-field-4",
|
|
27
|
-
restrictionField0 = "maintenance:can-access-restriction-field-0",
|
|
28
|
-
restrictionField1 = "maintenance:can-access-restriction-field-1",
|
|
29
|
-
restrictionField2 = "maintenance:can-access-restriction-field-2",
|
|
30
|
-
frequencyField0 = "maintenance:can-access-frequency-field-0",
|
|
31
|
-
frequencyField1 = "maintenance:can-access-frequency-field-1",
|
|
32
|
-
frequencyField2 = "maintenance:can-access-frequency-field-2",
|
|
33
|
-
frequencyField3 = "maintenance:can-access-frequency-field-3",
|
|
34
|
-
frequencyField4 = "maintenance:can-access-frequency-field-4",
|
|
35
|
-
priority = "maintenance:can-access-priority",
|
|
36
|
-
priorityNumber = "maintenance:can-access-priority-number",
|
|
37
|
-
priorityLabel = "maintenance:can-access-priority-label",
|
|
38
|
-
issuecategory = "maintenance:can-update-issuecategory",
|
|
39
|
-
monitorstate = "maintenance:can-update-monitorstate",
|
|
40
17
|
kanban_view = "maintenance:can-update-kanban-view"
|
|
41
18
|
}
|
|
19
|
+
enum OpenINCStack {
|
|
20
|
+
adminoverview = "opendash:can-access-admin-overview"
|
|
21
|
+
}
|
|
42
22
|
}
|
|
@@ -21,33 +21,15 @@ var Permissions;
|
|
|
21
21
|
// Access
|
|
22
22
|
OpenService["global"] = "maintenance:can-access-global";
|
|
23
23
|
OpenService["monitor"] = "maintenance:can-access-monitor";
|
|
24
|
-
OpenService["material"] = "maintenance:can-access-material";
|
|
25
|
-
OpenService["scheduletemplate"] = "maintenance:can-access-scheduletemplate";
|
|
26
24
|
OpenService["monitoring"] = "maintenance:can-access-monitoring";
|
|
27
|
-
OpenService["downtime"] = "maintenance:can-access-downtime";
|
|
28
|
-
OpenService["restriction"] = "maintenance:can-access-restriction";
|
|
29
|
-
OpenService["frequency"] = "maintenance:can-access-frequency";
|
|
30
|
-
OpenService["downtimeField0"] = "maintenance:can-access-downtime-field-0";
|
|
31
|
-
OpenService["downtimeField1"] = "maintenance:can-access-downtime-field-1";
|
|
32
|
-
OpenService["downtimeField2"] = "maintenance:can-access-downtime-field-2";
|
|
33
|
-
OpenService["downtimeField3"] = "maintenance:can-access-downtime-field-3";
|
|
34
|
-
OpenService["downtimeField4"] = "maintenance:can-access-downtime-field-4";
|
|
35
|
-
OpenService["restrictionField0"] = "maintenance:can-access-restriction-field-0";
|
|
36
|
-
OpenService["restrictionField1"] = "maintenance:can-access-restriction-field-1";
|
|
37
|
-
OpenService["restrictionField2"] = "maintenance:can-access-restriction-field-2";
|
|
38
|
-
OpenService["frequencyField0"] = "maintenance:can-access-frequency-field-0";
|
|
39
|
-
OpenService["frequencyField1"] = "maintenance:can-access-frequency-field-1";
|
|
40
|
-
OpenService["frequencyField2"] = "maintenance:can-access-frequency-field-2";
|
|
41
|
-
OpenService["frequencyField3"] = "maintenance:can-access-frequency-field-3";
|
|
42
|
-
OpenService["frequencyField4"] = "maintenance:can-access-frequency-field-4";
|
|
43
|
-
OpenService["priority"] = "maintenance:can-access-priority";
|
|
44
|
-
OpenService["priorityNumber"] = "maintenance:can-access-priority-number";
|
|
45
|
-
OpenService["priorityLabel"] = "maintenance:can-access-priority-label";
|
|
46
25
|
// Update
|
|
47
|
-
OpenService["issuecategory"] = "maintenance:can-update-issuecategory";
|
|
48
|
-
OpenService["monitorstate"] = "maintenance:can-update-monitorstate";
|
|
49
26
|
OpenService["kanban_view"] = "maintenance:can-update-kanban-view";
|
|
50
27
|
})(OpenService = Permissions.OpenService || (Permissions.OpenService = {}));
|
|
28
|
+
let OpenINCStack;
|
|
29
|
+
(function (OpenINCStack) {
|
|
30
|
+
//Access
|
|
31
|
+
OpenINCStack["adminoverview"] = "opendash:can-access-admin-overview";
|
|
32
|
+
})(OpenINCStack = Permissions.OpenINCStack || (Permissions.OpenINCStack = {}));
|
|
51
33
|
// can also be used for nested permissions
|
|
52
34
|
// Example:
|
|
53
35
|
// export namespace TestPlugin {
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openinc/parse-server-opendash",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.1",
|
|
4
4
|
"description": "Parse Server Cloud Code for open.INC Stack.",
|
|
5
|
-
"packageManager": "pnpm@10.
|
|
5
|
+
"packageManager": "pnpm@10.11.0",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"parse",
|
|
8
8
|
"opendash"
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"nunjucks": "^3.2.4",
|
|
74
74
|
"parse-server": "^8.2.0",
|
|
75
75
|
"pdf-img-convert": "2.0.0",
|
|
76
|
-
"semantic-release": "^24.2.
|
|
76
|
+
"semantic-release": "^24.2.4",
|
|
77
77
|
"table": "^6.9.0",
|
|
78
78
|
"web-push": "^3.6.7"
|
|
79
79
|
},
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"@semantic-release/npm": "^12.0.1",
|
|
87
87
|
"@semantic-release/release-notes-generator": "^14.0.3",
|
|
88
88
|
"@types/jsonwebtoken": "^9.0.9",
|
|
89
|
-
"@types/node": "^22.15.
|
|
89
|
+
"@types/node": "^22.15.21",
|
|
90
90
|
"@types/node-fetch": "^2.6.12",
|
|
91
91
|
"@types/nodemailer": "^6.4.17",
|
|
92
92
|
"@types/nunjucks": "^3.2.6",
|