@openinc/parse-server-opendash 2.4.89 → 2.4.91

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.
Files changed (78) hide show
  1. package/dist/app_types/ConfigKeys.d.ts +9 -0
  2. package/dist/app_types/ConfigKeys.js +14 -0
  3. package/dist/app_types/Notifications.d.ts +10 -0
  4. package/dist/app_types/Notifications.js +16 -0
  5. package/dist/app_types/Permissions.d.ts +42 -0
  6. package/dist/app_types/Permissions.js +61 -0
  7. package/dist/app_types/index.d.ts +3 -0
  8. package/dist/app_types/index.js +9 -0
  9. package/dist/featuremap.json +7 -5
  10. package/dist/functions/openinc-deregister-permission.js +2 -2
  11. package/dist/functions/openinc-openservice-save-ticket-data.d.ts +40 -0
  12. package/dist/functions/openinc-openservice-save-ticket-data.js +328 -0
  13. package/dist/functions/openinc-openservice-ticket-data.js +17 -74
  14. package/dist/functions/openinc-register-permission.js +1 -1
  15. package/dist/functions/openinc-user-roles.js +1 -1
  16. package/dist/helper/TicketData.d.ts +15 -0
  17. package/dist/helper/TicketData.js +2 -0
  18. package/dist/helper/pdf2img.d.ts +4 -1
  19. package/dist/helper/pdf2img.js +151 -104
  20. package/dist/helper/registerNotification.d.ts +25 -0
  21. package/dist/helper/registerNotification.js +61 -0
  22. package/dist/helper/registerPermissions.d.ts +0 -41
  23. package/dist/helper/registerPermissions.js +5 -61
  24. package/dist/hooks/Assets.js +17 -0
  25. package/dist/hooks/Documentation_Category.d.ts +1 -0
  26. package/dist/hooks/Documentation_Category.js +17 -0
  27. package/dist/hooks/Documentation_Document.d.ts +1 -0
  28. package/dist/hooks/Documentation_Document.js +17 -0
  29. package/dist/hooks/Knowledge_Document.js +35 -2
  30. package/dist/hooks/Maintenance_Message.js +12 -6
  31. package/dist/hooks/Maintenance_Message_Body.js +11 -2
  32. package/dist/hooks/Maintenance_Schedule_Execution.js +4 -4
  33. package/dist/hooks/Maintenance_Schedule_Template.js +19 -8
  34. package/dist/hooks/Maintenance_Ticket.js +1 -4
  35. package/dist/hooks/Maintenance_Ticket_Kanban_State_Current.js +1 -1
  36. package/dist/hooks/Notification_Setting.d.ts +1 -0
  37. package/dist/hooks/Notification_Setting.js +55 -0
  38. package/dist/hooks/User_Setting.d.ts +1 -0
  39. package/dist/hooks/User_Setting.js +17 -0
  40. package/dist/hooks/_User.js +0 -12
  41. package/dist/index.js +12 -0
  42. package/dist/jobs/open_service_notifyOnSchedule.js +125 -19
  43. package/dist/types/Assets.d.ts +27 -0
  44. package/dist/types/Assets.js +41 -0
  45. package/dist/types/Documentation_Category.d.ts +3 -0
  46. package/dist/types/Documentation_Category.js +6 -0
  47. package/dist/types/Documentation_Document.d.ts +3 -6
  48. package/dist/types/Documentation_Document.js +4 -10
  49. package/dist/types/Knowledge_Document.d.ts +3 -0
  50. package/dist/types/Knowledge_Document.js +6 -0
  51. package/dist/types/Maintenance_Message.d.ts +9 -0
  52. package/dist/types/Maintenance_Message.js +15 -0
  53. package/dist/types/Maintenance_Message_Body.d.ts +3 -0
  54. package/dist/types/Maintenance_Message_Body.js +6 -0
  55. package/dist/types/Maintenance_Schedule_Execution.d.ts +3 -0
  56. package/dist/types/Maintenance_Schedule_Execution.js +6 -0
  57. package/dist/types/Notification_Setting.d.ts +29 -0
  58. package/dist/types/Notification_Setting.js +41 -0
  59. package/dist/types/User_Setting.d.ts +13 -0
  60. package/dist/types/User_Setting.js +17 -0
  61. package/dist/types/_User.d.ts +2 -0
  62. package/dist/types/index.d.ts +6 -2
  63. package/dist/types/index.js +8 -4
  64. package/package.json +4 -4
  65. package/schema/Assets.json +52 -0
  66. package/schema/Documentation_Category.json +4 -0
  67. package/schema/Documentation_Document.json +3 -9
  68. package/schema/Knowledge_Document.json +5 -0
  69. package/schema/Maintenance_Message.json +13 -0
  70. package/schema/Maintenance_Message_Body.json +4 -0
  71. package/schema/Maintenance_Schedule_Execution.json +4 -0
  72. package/schema/Notification_Setting.json +57 -0
  73. package/schema/User_Setting.json +35 -0
  74. package/dist/hooks/Group.js +0 -55
  75. package/dist/types/Group.d.ts +0 -31
  76. package/dist/types/Group.js +0 -47
  77. package/schema/Group.json +0 -62
  78. /package/dist/hooks/{Group.d.ts → Assets.d.ts} +0 -0
@@ -1,44 +1,3 @@
1
- /**
2
- * Permissions that should be registered in the database by default when the server starts.
3
- * The ACLs are set to od-admin only.
4
- * Adding new Permissions here requires the server to restart for registering those.
5
- */
6
- export declare namespace Permissions {
7
- enum OpenService {
8
- ticket = "maintenance:can-create-ticket",
9
- schedule = "maintenance:can-create-schedule",
10
- message = "maintenance:can-create-message",
11
- machinelog_ticket = "maintenance:can-create-machinelog-ticket",
12
- machinelog_schedule = "maintenance:can-create-machinelog-schedule",
13
- machinelog_message = "maintenance:can-create-machinelog-message",
14
- global = "maintenance:can-access-global",
15
- monitor = "maintenance:can-access-monitor",
16
- material = "maintenance:can-access-material",
17
- scheduletemplate = "maintenance:can-access-scheduletemplate",
18
- dailySchedule = "maintenance:can-access-dailySchedule",
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
- }
41
- }
42
1
  /**
43
2
  * Returns all permissions from the OpenService plugin defined in types/config.ts as an array of Permission objects.
44
3
  * @returns all permissions from the OpenService plugin
@@ -1,74 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RegisteredPermission = exports.Permissions = void 0;
3
+ exports.RegisteredPermission = void 0;
4
4
  exports.getAllPermissions = getAllPermissions;
5
- /**
6
- * Permissions that should be registered in the database by default when the server starts.
7
- * The ACLs are set to od-admin only.
8
- * Adding new Permissions here requires the server to restart for registering those.
9
- */
10
- var Permissions;
11
- (function (Permissions) {
12
- // needs to be exported for getAllPermissions() to work
13
- let OpenService;
14
- (function (OpenService) {
15
- // Create
16
- OpenService["ticket"] = "maintenance:can-create-ticket";
17
- OpenService["schedule"] = "maintenance:can-create-schedule";
18
- OpenService["message"] = "maintenance:can-create-message";
19
- OpenService["machinelog_ticket"] = "maintenance:can-create-machinelog-ticket";
20
- OpenService["machinelog_schedule"] = "maintenance:can-create-machinelog-schedule";
21
- OpenService["machinelog_message"] = "maintenance:can-create-machinelog-message";
22
- // Access
23
- OpenService["global"] = "maintenance:can-access-global";
24
- OpenService["monitor"] = "maintenance:can-access-monitor";
25
- OpenService["material"] = "maintenance:can-access-material";
26
- OpenService["scheduletemplate"] = "maintenance:can-access-scheduletemplate";
27
- OpenService["dailySchedule"] = "maintenance:can-access-dailySchedule";
28
- OpenService["downtime"] = "maintenance:can-access-downtime";
29
- OpenService["restriction"] = "maintenance:can-access-restriction";
30
- OpenService["frequency"] = "maintenance:can-access-frequency";
31
- OpenService["downtimeField0"] = "maintenance:can-access-downtime-field-0";
32
- OpenService["downtimeField1"] = "maintenance:can-access-downtime-field-1";
33
- OpenService["downtimeField2"] = "maintenance:can-access-downtime-field-2";
34
- OpenService["downtimeField3"] = "maintenance:can-access-downtime-field-3";
35
- OpenService["downtimeField4"] = "maintenance:can-access-downtime-field-4";
36
- OpenService["restrictionField0"] = "maintenance:can-access-restriction-field-0";
37
- OpenService["restrictionField1"] = "maintenance:can-access-restriction-field-1";
38
- OpenService["restrictionField2"] = "maintenance:can-access-restriction-field-2";
39
- OpenService["frequencyField0"] = "maintenance:can-access-frequency-field-0";
40
- OpenService["frequencyField1"] = "maintenance:can-access-frequency-field-1";
41
- OpenService["frequencyField2"] = "maintenance:can-access-frequency-field-2";
42
- OpenService["frequencyField3"] = "maintenance:can-access-frequency-field-3";
43
- OpenService["frequencyField4"] = "maintenance:can-access-frequency-field-4";
44
- OpenService["priority"] = "maintenance:can-access-priority";
45
- OpenService["priorityNumber"] = "maintenance:can-access-priority-number";
46
- OpenService["priorityLabel"] = "maintenance:can-access-priority-label";
47
- // Update
48
- OpenService["issuecategory"] = "maintenance:can-update-issuecategory";
49
- OpenService["monitorstate"] = "maintenance:can-update-monitorstate";
50
- })(OpenService = Permissions.OpenService || (Permissions.OpenService = {}));
51
- // can also be used for nested permissions
52
- // Example:
53
- // export namespace TestPlugin {
54
- // export enum TestPermission {
55
- // test = "test:can-test",
56
- // }
57
- // export enum TestPermission2 {
58
- // test2 = "test:can-test2",
59
- // }
60
- // }
61
- })(Permissions || (exports.Permissions = Permissions = {}));
5
+ const app_types_1 = require("../app_types");
62
6
  /**
63
7
  * Returns all permissions from the OpenService plugin defined in types/config.ts as an array of Permission objects.
64
8
  * @returns all permissions from the OpenService plugin
65
9
  */
66
10
  function getAllPermissions() {
67
11
  const permissions = []; // stores all permissions
68
- for (const key in Permissions) {
12
+ for (const key in app_types_1.Permissions) {
69
13
  // iterate over the objects / enums of the Permissions namespace
70
- if (Object.prototype.hasOwnProperty.call(Permissions, key)) {
71
- const element = Permissions[key]; // get the object / enum
14
+ if (Object.prototype.hasOwnProperty.call(app_types_1.Permissions, key)) {
15
+ const element = app_types_1.Permissions[key]; // get the object / enum
72
16
  const createdPermissions = createPermission(element); // create Permission objects recursively
73
17
  permissions.push(...createdPermissions);
74
18
  }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.Assets, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ await (0, __1.defaultAclHandler)(request);
11
+ // TODO
12
+ });
13
+ (0, __1.afterSaveHook)(types_1.Assets, async (request) => {
14
+ const { object, original, user } = request;
15
+ // TODO
16
+ });
17
+ }
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.Documentation_Category, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ await (0, __1.defaultAclHandler)(request);
11
+ // TODO
12
+ });
13
+ (0, __1.afterSaveHook)(types_1.Documentation_Category, async (request) => {
14
+ const { object, original, user } = request;
15
+ // TODO
16
+ });
17
+ }
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.Documentation_Document, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ await (0, __1.defaultAclHandler)(request);
11
+ // TODO
12
+ });
13
+ (0, __1.afterSaveHook)(types_1.Documentation_Document, async (request) => {
14
+ const { object, original, user } = request;
15
+ // TODO
16
+ });
17
+ }
@@ -1,7 +1,39 @@
1
1
  "use strict";
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
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.init = init;
4
- const pdf2img_1 = require("../helper/pdf2img");
5
37
  const __1 = require("..");
6
38
  const types_1 = require("../types");
7
39
  async function init() {
@@ -25,7 +57,8 @@ async function init() {
25
57
  await page.image.destroy();
26
58
  await page.destroy({ useMasterKey: true });
27
59
  }
28
- const images = await (0, pdf2img_1.convert)(pdfUrl, {
60
+ const pdf2img = await Promise.resolve().then(() => __importStar(require("pdf-img-convert")));
61
+ const images = await pdf2img.convert(pdfUrl, {
29
62
  base64: true,
30
63
  width: 2000,
31
64
  });
@@ -4,17 +4,23 @@ exports.init = init;
4
4
  const __1 = require("..");
5
5
  const types_1 = require("../types");
6
6
  async function init() {
7
+ //Check each object if displayAt is set, if not, set it to createdAt
8
+ await new Parse.Query(types_1.Maintenance_Message.className).each(async (message) => {
9
+ if (!message.get("displayAt")) {
10
+ message.set("displayAt", message.get("createdAt"));
11
+ await message.save(null, { useMasterKey: true });
12
+ }
13
+ }, { useMasterKey: true });
7
14
  (0, __1.beforeSaveHook)(types_1.Maintenance_Message, async (request) => {
8
- const { object, original, user } = request;
15
+ const { object, original, user, master } = request;
9
16
  await (0, __1.defaultHandler)(request);
10
17
  await (0, __1.defaultAclHandler)(request);
11
- // TODO
18
+ //Check if object has "displayAt"; if not, fill it with Date from createdAt
19
+ if (!object.displayAt) {
20
+ object.set("displayAt", object.createdAt);
21
+ }
12
22
  });
13
23
  (0, __1.afterSaveHook)(types_1.Maintenance_Message, async (request) => {
14
24
  const { object, original, user, master } = request;
15
- if (!master && original && original.get("createdAt")) {
16
- object.save({ createdAt: original.get("createdAt") }, { useMasterKey: true });
17
- }
18
- // TODO
19
25
  });
20
26
  }
@@ -4,14 +4,23 @@ exports.init = init;
4
4
  const __1 = require("..");
5
5
  const types_1 = require("../types");
6
6
  async function init() {
7
+ //Check each object if displayAt is set, if not, set it to createdAt
8
+ await new Parse.Query(types_1.Maintenance_Message_Body.className).each(async (messagebody) => {
9
+ if (!messagebody.get("displayAt")) {
10
+ messagebody.set("displayAt", messagebody.get("createdAt"));
11
+ await messagebody.save(null, { useMasterKey: true });
12
+ }
13
+ }, { useMasterKey: true });
7
14
  (0, __1.beforeSaveHook)(types_1.Maintenance_Message_Body, async (request) => {
8
15
  const { object, original, user } = request;
9
16
  await (0, __1.defaultHandler)(request);
10
17
  await (0, __1.defaultAclHandler)(request);
11
- // TODO
18
+ //Check if object has "displayAt"; if not, fill it with Date from createdAt
19
+ if (!object.displayAt) {
20
+ object.displayAt = object.createdAt;
21
+ }
12
22
  });
13
23
  (0, __1.afterSaveHook)(types_1.Maintenance_Message_Body, async (request) => {
14
24
  const { object, original, user } = request;
15
- // TODO
16
25
  });
17
26
  }
@@ -17,7 +17,7 @@ async function init() {
17
17
  : Parse.User.current()
18
18
  ? Parse.User.current().get("tenant")
19
19
  : undefined;
20
- if (typeof object.origin === "undefined" || typeof tenant === "undefined") {
20
+ if (object.origin === undefined || tenant === undefined) {
21
21
  return;
22
22
  }
23
23
  const [fetchedOriginError, fetchedOrigin] = await (0, catchError_1.catchError)(new Parse.Query(types_1.Maintenance_Schedule_Template)
@@ -25,7 +25,7 @@ async function init() {
25
25
  .get(object.origin.id, {
26
26
  useMasterKey: true,
27
27
  }));
28
- if (typeof fetchedOrigin === "undefined") {
28
+ if (fetchedOrigin === undefined) {
29
29
  return;
30
30
  }
31
31
  const [stepserror, steps] = await (0, catchError_1.catchError)(fetchedOrigin
@@ -50,11 +50,11 @@ async function init() {
50
50
  fields: step.get("fields"),
51
51
  });
52
52
  const mediarelation = executionstep.relation("media");
53
- if (typeof media !== "undefined") {
53
+ if (media !== undefined) {
54
54
  mediarelation.add(media);
55
55
  }
56
56
  const rolesrelation = executionstep.relation("roles");
57
- if (typeof roles !== "undefined") {
57
+ if (roles !== undefined) {
58
58
  rolesrelation.add(roles);
59
59
  }
60
60
  const [stepsaveerror, stepsaveobject] = await (0, catchError_1.catchError)(executionstep.save(null, { useMasterKey: true }));
@@ -21,6 +21,7 @@ async function init() {
21
21
  const { object, original, user } = request;
22
22
  //TODO: Create notification object
23
23
  //TODO: Send mail or anything that is enabled
24
+ //TODO: Move bree to a separate file and use as singleton
24
25
  startBree([object]);
25
26
  });
26
27
  /**
@@ -35,7 +36,7 @@ async function init() {
35
36
  console.error("Error while querying Maintenance_Schedule_Template objects", queryError);
36
37
  return;
37
38
  }
38
- //TODO
39
+ //TODO: Do I need to reschedule all jobs when server restarts?
39
40
  }
40
41
  async function startBree(query) {
41
42
  console.log("Starting Bree");
@@ -46,15 +47,17 @@ async function init() {
46
47
  if (cron["scheduletype"] === "human") {
47
48
  jobs.push({
48
49
  name: `Schedule ${schedule.id}`,
49
- path: "open_service_notifyOnSchedule",
50
+ path: node_path_1.default.join(__dirname, "..", "jobs", "open_service_notifyOnSchedule.js"),
50
51
  timeout: 0,
51
52
  interval: createHumanReadableFormat(cron["run_cron"]),
52
53
  hasSeconds: true,
53
54
  worker: {
54
55
  workerData: {
55
56
  scheduleId: schedule.id,
56
- MaintenanceTicketClass: types_1.Maintenance_Ticket,
57
- NotificationClass: types_1.Notification,
57
+ ParseAppId: Parse.applicationId,
58
+ ParseJSKey: Parse.javaScriptKey,
59
+ ParseMasterKey: Parse.masterKey,
60
+ ParseServerURL: Parse.serverURL,
58
61
  },
59
62
  },
60
63
  });
@@ -63,15 +66,17 @@ async function init() {
63
66
  jobs.push({
64
67
  name: `Schedule ${schedule.id}`,
65
68
  cron: cron["run_cron"],
66
- path: "open_service_notifyOnSchedule",
69
+ path: node_path_1.default.join(__dirname, "..", "jobs", "open_service_notifyOnSchedule.js"),
67
70
  timeout: 0,
68
71
  interval: 0,
69
72
  hasSeconds: true,
70
73
  worker: {
71
74
  workerData: {
72
75
  scheduleId: schedule.id,
73
- MaintenanceTicketType: types_1.Maintenance_Ticket,
74
- NotificationType: types_1.Notification,
76
+ ParseAppId: Parse.applicationId,
77
+ ParseJSKey: Parse.javaScriptKey,
78
+ ParseMasterKey: Parse.masterKey,
79
+ ParseServerURL: Parse.serverURL,
75
80
  },
76
81
  },
77
82
  });
@@ -84,8 +89,14 @@ async function init() {
84
89
  errorHandler: (error, workerMetadata) => {
85
90
  console.error(`An error occurred in worker ${workerMetadata.name} with the following error: ${error}`);
86
91
  },
92
+ workerMessageHandler: (message) => {
93
+ console.log(`Worker ${message.name} sent the following message: ${message.message}`);
94
+ },
87
95
  root: node_path_1.default.join(__dirname, "..", "jobs"),
88
- jobs: ["open_service_notifyOnSchedule"],
96
+ jobs: [...jobs],
97
+ acceptedExtensions: ["js"],
98
+ defaultExtension: "js",
99
+ outputWorkerMetadata: false,
89
100
  });
90
101
  //Start bree object
91
102
  // const graceful = new Graceful({ brees: [bree] });
@@ -13,9 +13,6 @@ async function init() {
13
13
  });
14
14
  (0, __1.afterSaveHook)(types_1.Maintenance_Ticket, async (request) => {
15
15
  const { object, original, user, master } = request;
16
- if (!master && original && original.get("createdAt")) {
17
- object.save({ createdAt: original.get("createdAt") }, { useMasterKey: true });
18
- }
19
16
  });
20
17
  async function initClass() {
21
18
  // Query all of Maintenance_Ticket and find all of Maintenance_Priority sort by createdAt in descending order
@@ -31,7 +28,7 @@ async function init() {
31
28
  console.error("Maintenance_Priority error", priorityError);
32
29
  return;
33
30
  }
34
- if (typeof priorityResult === "undefined") {
31
+ if (priorityResult === undefined) {
35
32
  console.log("Maintenance_Ticket init: Check and save latestPriority: No priority found for ticket", ticket.id);
36
33
  return;
37
34
  }
@@ -35,7 +35,7 @@ async function initCurrentTicketStates() {
35
35
  .first({ useMasterKey: true });
36
36
  const tenant = ticket.get("tenant");
37
37
  const user = ticket.get("user");
38
- if (typeof tenant === "undefined" || typeof user === "undefined") {
38
+ if (tenant === undefined || user === undefined) {
39
39
  console.error("Tenant or user is undefined for ticket", ticket.id);
40
40
  continue;
41
41
  }
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const catchError_1 = require("../helper/catchError");
6
+ const registerNotification_1 = require("../helper/registerNotification");
7
+ const types_1 = require("../types");
8
+ async function init() {
9
+ registerNotifications();
10
+ (0, __1.beforeSaveHook)(types_1.Notification_Setting, async (request) => {
11
+ const { object, original, user } = request;
12
+ await (0, __1.defaultHandler)(request);
13
+ await (0, __1.defaultAclHandler)(request);
14
+ // TODO
15
+ });
16
+ (0, __1.afterSaveHook)(types_1.Notification_Setting, async (request) => {
17
+ const { object, original, user } = request;
18
+ // TODO
19
+ });
20
+ }
21
+ /**
22
+ * Register all notification settings in the database, if not already registered.
23
+ */
24
+ async function registerNotifications() {
25
+ //Check if only one tenant is present in the database
26
+ const [tenantCountError, tenantCount] = await (0, catchError_1.catchError)(new Parse.Query(types_1.Tenant).count({ useMasterKey: true }));
27
+ if (tenantCountError) {
28
+ console.error("Error while counting Tenant object", tenantCountError);
29
+ return;
30
+ }
31
+ //If only one tenant is present, register all notifications for this tenant
32
+ const tenant = tenantCount === 1
33
+ ? await new Parse.Query(types_1.Tenant).first({ useMasterKey: true })
34
+ : undefined;
35
+ console.log("Register all notification settings");
36
+ (0, registerNotification_1.getAllNotifications)().forEach((notification) => {
37
+ new Parse.Query(types_1.Notification_Setting)
38
+ .equalTo("key", notification.key)
39
+ .first({ useMasterKey: true })
40
+ .then((result) => {
41
+ if (!result) {
42
+ console.log("Create notification", notification.key);
43
+ const newNotification = new types_1.Notification_Setting();
44
+ newNotification.set("key", notification.key);
45
+ newNotification.set("description", notification.description);
46
+ newNotification.set("label", notification.label);
47
+ newNotification.set("tenant", tenant);
48
+ newNotification.save({}, { useMasterKey: true });
49
+ }
50
+ else {
51
+ console.log("Notification already exists", notification.key);
52
+ }
53
+ });
54
+ });
55
+ }
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.User_Setting, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ await (0, __1.defaultAclHandler)(request);
11
+ // TODO
12
+ });
13
+ (0, __1.afterSaveHook)(types_1.User_Setting, async (request) => {
14
+ const { object, original, user } = request;
15
+ // TODO
16
+ });
17
+ }
@@ -44,14 +44,6 @@ async function init() {
44
44
  // @ts-ignore
45
45
  request.context.tenantChanged = true;
46
46
  }
47
- // fetch user groups
48
- const groups = user.id
49
- ? await new Parse.Query(types_1.Group)
50
- .equalTo("users", user)
51
- .equalTo("usersSeeEachOther", true)
52
- .limit(1000000)
53
- .find({ useMasterKey: true })
54
- : [];
55
47
  user.setACL(new Parse.ACL({
56
48
  ...(tenantId && {
57
49
  [`role:od-tenant-user-${tenantId}`]: { read: true },
@@ -63,10 +55,6 @@ async function init() {
63
55
  ...(user.id && {
64
56
  [user.id]: { read: true },
65
57
  }),
66
- ...Object.fromEntries(groups.map((group) => [
67
- "role:od-group-user-" + group.id,
68
- { read: true },
69
- ])),
70
58
  "role:od-admin": { read: true, write: true },
71
59
  }));
72
60
  });
package/dist/index.js CHANGED
@@ -36,6 +36,7 @@ var Core_Email_2 = require("./hooks/Core_Email");
36
36
  Object.defineProperty(exports, "sendSimpleEmail", { enumerable: true, get: function () { return Core_Email_2.sendSimpleEmail; } });
37
37
  Object.defineProperty(exports, "sendTemplateEmail", { enumerable: true, get: function () { return Core_Email_2.sendTemplateEmail; } });
38
38
  const PREFIX = "OD3_";
39
+ // const lang_deu = require("../i18n/deu.json");
39
40
  let schema = {};
40
41
  /**
41
42
  * Initializes the Cloud Code for open.DASH.
@@ -53,6 +54,7 @@ async function init() {
53
54
  }
54
55
  catch (error) { }
55
56
  await config_1.config.init(true);
57
+ await initTranslations();
56
58
  await (0, Core_Email_1.initEmailTransport)();
57
59
  await initWebPush();
58
60
  await initSchema();
@@ -62,6 +64,16 @@ async function init() {
62
64
  await (0, _init_1.init)();
63
65
  await initAutoload();
64
66
  }
67
+ async function initTranslations() {
68
+ // try {
69
+ // registerLanguage("deu", "Deutsch", "eng", true);
70
+ // registerTranslationResolver("deu", "server", async () => lang_deu);
71
+ // } catch (error) {
72
+ // console.error("Error while initializing translations");
73
+ // console.error(error);
74
+ // process.exit(1);
75
+ // }
76
+ }
65
77
  async function initWebPush() {
66
78
  try {
67
79
  if (config_1.config.getBoolean("WEB_PUSH_ENABLED")) {