@openinc/parse-server-opendash 1.10.2 → 1.11.0

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 (258) hide show
  1. package/dist/functions/_init.js +11 -65
  2. package/dist/functions/getAdminConfig.js +38 -91
  3. package/dist/functions/getSchemaForAdmin.js +5 -54
  4. package/dist/functions/opendash-geo-features.js +13 -58
  5. package/dist/functions/opendash-geo-google-autocomplete.js +53 -112
  6. package/dist/functions/opendash-geo-graphhopper-geocode-reverse.js +30 -83
  7. package/dist/functions/opendash-geo-graphhopper-geocode.js +33 -86
  8. package/dist/hooks/Alarm.d.ts +1 -1
  9. package/dist/hooks/Alarm.js +29 -95
  10. package/dist/hooks/AlarmAction.d.ts +1 -1
  11. package/dist/hooks/AlarmAction.js +9 -64
  12. package/dist/hooks/AlarmWebhook.d.ts +1 -1
  13. package/dist/hooks/AlarmWebhook.js +10 -64
  14. package/dist/hooks/Attachment.d.ts +1 -0
  15. package/dist/hooks/Attachment.js +18 -0
  16. package/dist/hooks/BDE_Form.d.ts +1 -1
  17. package/dist/hooks/BDE_Form.js +57 -114
  18. package/dist/hooks/BDE_List.d.ts +1 -1
  19. package/dist/hooks/BDE_List.js +11 -57
  20. package/dist/hooks/BDE_ListEntry.d.ts +1 -1
  21. package/dist/hooks/BDE_ListEntry.js +11 -57
  22. package/dist/hooks/BDE_Page.d.ts +1 -1
  23. package/dist/hooks/BDE_Page.js +19 -84
  24. package/dist/hooks/BDE_Result.d.ts +1 -1
  25. package/dist/hooks/BDE_Result.js +125 -177
  26. package/dist/hooks/BDE_Unit.d.ts +1 -1
  27. package/dist/hooks/BDE_Unit.js +11 -57
  28. package/dist/hooks/Config.d.ts +1 -1
  29. package/dist/hooks/Config.js +10 -64
  30. package/dist/hooks/Dashboard.d.ts +1 -1
  31. package/dist/hooks/Dashboard.js +26 -96
  32. package/dist/hooks/Group.d.ts +1 -0
  33. package/dist/hooks/Group.js +18 -0
  34. package/dist/hooks/Group_UserRelation.d.ts +1 -0
  35. package/dist/hooks/Group_UserRelation.js +18 -0
  36. package/dist/hooks/Knowledge_Article.d.ts +1 -0
  37. package/dist/hooks/Knowledge_Article.js +18 -0
  38. package/dist/hooks/Knowledge_Category.d.ts +1 -0
  39. package/dist/hooks/Knowledge_Category.js +18 -0
  40. package/dist/hooks/Knowledge_Document.d.ts +1 -0
  41. package/dist/hooks/Knowledge_Document.js +18 -0
  42. package/dist/hooks/Knowledge_DocumentPage.d.ts +1 -0
  43. package/dist/hooks/Knowledge_DocumentPage.js +18 -0
  44. package/dist/hooks/Knowledge_Video.d.ts +1 -0
  45. package/dist/hooks/Knowledge_Video.js +18 -0
  46. package/dist/hooks/Language.d.ts +1 -0
  47. package/dist/hooks/Language.js +18 -0
  48. package/dist/hooks/Maintenance_Article.d.ts +1 -0
  49. package/dist/hooks/Maintenance_Article.js +18 -0
  50. package/dist/hooks/Maintenance_Downtime.d.ts +1 -0
  51. package/dist/hooks/Maintenance_Downtime.js +18 -0
  52. package/dist/hooks/Maintenance_Duedate.d.ts +1 -0
  53. package/dist/hooks/Maintenance_Duedate.js +18 -0
  54. package/dist/hooks/Maintenance_Frequency.d.ts +1 -0
  55. package/dist/hooks/Maintenance_Frequency.js +18 -0
  56. package/dist/hooks/Maintenance_Issuecategory.d.ts +1 -0
  57. package/dist/hooks/Maintenance_Issuecategory.js +18 -0
  58. package/dist/hooks/Maintenance_Kanban_State.d.ts +1 -0
  59. package/dist/hooks/Maintenance_Kanban_State.js +18 -0
  60. package/dist/hooks/Maintenance_Media.d.ts +1 -0
  61. package/dist/hooks/Maintenance_Media.js +18 -0
  62. package/dist/hooks/Maintenance_Priority.d.ts +1 -0
  63. package/dist/hooks/Maintenance_Priority.js +18 -0
  64. package/dist/hooks/Maintenance_Restriction.d.ts +1 -0
  65. package/dist/hooks/Maintenance_Restriction.js +18 -0
  66. package/dist/hooks/Maintenance_Schedule.d.ts +1 -0
  67. package/dist/hooks/Maintenance_Schedule.js +18 -0
  68. package/dist/hooks/Maintenance_Schedule_Step.d.ts +1 -0
  69. package/dist/hooks/Maintenance_Schedule_Step.js +18 -0
  70. package/dist/hooks/Maintenance_Ticket.d.ts +1 -0
  71. package/dist/hooks/Maintenance_Ticket.js +18 -0
  72. package/dist/hooks/Maintenance_Ticket_Issuecategory.d.ts +1 -0
  73. package/dist/hooks/Maintenance_Ticket_Issuecategory.js +18 -0
  74. package/dist/hooks/Maintenance_Ticket_Kanban_State.d.ts +1 -0
  75. package/dist/hooks/Maintenance_Ticket_Kanban_State.js +18 -0
  76. package/dist/hooks/Maintenance_Ticket_Source.d.ts +1 -0
  77. package/dist/hooks/Maintenance_Ticket_Source.js +18 -0
  78. package/dist/hooks/NavigationGroup.d.ts +1 -1
  79. package/dist/hooks/NavigationGroup.js +9 -64
  80. package/dist/hooks/NavigationItem.d.ts +1 -1
  81. package/dist/hooks/NavigationItem.js +10 -64
  82. package/dist/hooks/Notification.d.ts +1 -1
  83. package/dist/hooks/Notification.js +55 -153
  84. package/dist/hooks/Permission.d.ts +1 -1
  85. package/dist/hooks/Permission.js +9 -64
  86. package/dist/hooks/Push.d.ts +1 -1
  87. package/dist/hooks/Push.js +24 -80
  88. package/dist/hooks/Report.d.ts +1 -1
  89. package/dist/hooks/Report.js +10 -64
  90. package/dist/hooks/Share.d.ts +1 -1
  91. package/dist/hooks/Share.js +10 -64
  92. package/dist/hooks/Source.d.ts +1 -1
  93. package/dist/hooks/Source.js +123 -240
  94. package/dist/hooks/SourceMeta.d.ts +1 -1
  95. package/dist/hooks/SourceMeta.js +36 -115
  96. package/dist/hooks/Tenant.d.ts +1 -1
  97. package/dist/hooks/Tenant.js +87 -168
  98. package/dist/hooks/TenantMeta.d.ts +1 -1
  99. package/dist/hooks/TenantMeta.js +6 -56
  100. package/dist/hooks/TenantTrustedDomain.d.ts +1 -1
  101. package/dist/hooks/TenantTrustedDomain.js +6 -56
  102. package/dist/hooks/UserData.d.ts +1 -1
  103. package/dist/hooks/UserData.js +10 -64
  104. package/dist/hooks/WebPush.d.ts +1 -1
  105. package/dist/hooks/WebPush.js +21 -77
  106. package/dist/hooks/Widget.d.ts +1 -1
  107. package/dist/hooks/Widget.js +10 -64
  108. package/dist/hooks/WidgetPreset.d.ts +1 -0
  109. package/dist/hooks/WidgetPreset.js +18 -0
  110. package/dist/hooks/_User.js +102 -208
  111. package/dist/hooks/_beforeLogin.js +16 -71
  112. package/dist/hooks/_init.js +15 -78
  113. package/dist/index.d.ts +4 -0
  114. package/dist/index.js +241 -487
  115. package/dist/ow.js +79 -137
  116. package/dist/types/Alarm.d.ts +25 -5
  117. package/dist/types/Alarm.js +57 -0
  118. package/dist/types/AlarmAction.d.ts +29 -7
  119. package/dist/types/AlarmAction.js +63 -0
  120. package/dist/types/AlarmWebhook.d.ts +30 -9
  121. package/dist/types/AlarmWebhook.js +63 -0
  122. package/dist/types/Attachment.d.ts +21 -0
  123. package/dist/types/Attachment.js +29 -0
  124. package/dist/types/BDE_Form.d.ts +14 -3
  125. package/dist/types/BDE_Form.js +33 -0
  126. package/dist/types/BDE_List.d.ts +6 -1
  127. package/dist/types/BDE_List.js +15 -0
  128. package/dist/types/BDE_ListEntry.d.ts +12 -4
  129. package/dist/types/BDE_ListEntry.js +27 -0
  130. package/dist/types/BDE_Page.d.ts +9 -2
  131. package/dist/types/BDE_Page.js +21 -0
  132. package/dist/types/BDE_Result.d.ts +11 -2
  133. package/dist/types/BDE_Result.js +27 -0
  134. package/dist/types/BDE_Unit.d.ts +14 -3
  135. package/dist/types/BDE_Unit.js +33 -0
  136. package/dist/types/Config.d.ts +14 -3
  137. package/dist/types/Config.js +33 -0
  138. package/dist/types/Dashboard.d.ts +24 -5
  139. package/dist/types/Dashboard.js +51 -0
  140. package/dist/types/Group.d.ts +18 -0
  141. package/dist/types/Group.js +23 -0
  142. package/dist/types/Group_UserRelation.d.ts +19 -0
  143. package/dist/types/Group_UserRelation.js +23 -0
  144. package/dist/types/Knowledge_Article.d.ts +29 -0
  145. package/dist/types/Knowledge_Article.js +41 -0
  146. package/dist/types/Knowledge_Category.d.ts +25 -0
  147. package/dist/types/Knowledge_Category.js +35 -0
  148. package/dist/types/Knowledge_Document.d.ts +29 -0
  149. package/dist/types/Knowledge_Document.js +41 -0
  150. package/dist/types/Knowledge_DocumentPage.d.ts +27 -0
  151. package/dist/types/Knowledge_DocumentPage.js +41 -0
  152. package/dist/types/Knowledge_Video.d.ts +35 -0
  153. package/dist/types/Knowledge_Video.js +53 -0
  154. package/dist/types/Language.d.ts +14 -0
  155. package/dist/types/Language.js +17 -0
  156. package/dist/types/Maintenance_Article.d.ts +33 -0
  157. package/dist/types/Maintenance_Article.js +47 -0
  158. package/dist/types/Maintenance_Downtime.d.ts +26 -0
  159. package/dist/types/Maintenance_Downtime.js +35 -0
  160. package/dist/types/Maintenance_Duedate.d.ts +35 -0
  161. package/dist/types/Maintenance_Duedate.js +53 -0
  162. package/dist/types/Maintenance_Frequency.d.ts +26 -0
  163. package/dist/types/Maintenance_Frequency.js +35 -0
  164. package/dist/types/Maintenance_Issuecategory.d.ts +34 -0
  165. package/dist/types/Maintenance_Issuecategory.js +53 -0
  166. package/dist/types/Maintenance_Kanban_State.d.ts +33 -0
  167. package/dist/types/Maintenance_Kanban_State.js +53 -0
  168. package/dist/types/Maintenance_Media.d.ts +21 -0
  169. package/dist/types/Maintenance_Media.js +29 -0
  170. package/dist/types/Maintenance_Priority.d.ts +26 -0
  171. package/dist/types/Maintenance_Priority.js +35 -0
  172. package/dist/types/Maintenance_Restriction.d.ts +26 -0
  173. package/dist/types/Maintenance_Restriction.js +35 -0
  174. package/dist/types/Maintenance_Schedule.d.ts +29 -0
  175. package/dist/types/Maintenance_Schedule.js +41 -0
  176. package/dist/types/Maintenance_Schedule_Step.d.ts +34 -0
  177. package/dist/types/Maintenance_Schedule_Step.js +53 -0
  178. package/dist/types/Maintenance_Ticket.d.ts +25 -0
  179. package/dist/types/Maintenance_Ticket.js +35 -0
  180. package/dist/types/Maintenance_Ticket_Issuecategory.d.ts +27 -0
  181. package/dist/types/Maintenance_Ticket_Issuecategory.js +35 -0
  182. package/dist/types/Maintenance_Ticket_Kanban_State.d.ts +27 -0
  183. package/dist/types/Maintenance_Ticket_Kanban_State.js +35 -0
  184. package/dist/types/Maintenance_Ticket_Source.d.ts +27 -0
  185. package/dist/types/Maintenance_Ticket_Source.js +35 -0
  186. package/dist/types/NavigationGroup.d.ts +14 -3
  187. package/dist/types/NavigationGroup.js +33 -0
  188. package/dist/types/NavigationItem.d.ts +36 -9
  189. package/dist/types/NavigationItem.js +81 -0
  190. package/dist/types/Notification.d.ts +20 -5
  191. package/dist/types/Notification.js +45 -0
  192. package/dist/types/Permission.d.ts +9 -2
  193. package/dist/types/Permission.js +21 -0
  194. package/dist/types/Push.d.ts +18 -5
  195. package/dist/types/Push.js +39 -0
  196. package/dist/types/Report.d.ts +16 -3
  197. package/dist/types/Report.js +39 -0
  198. package/dist/types/Share.d.ts +25 -8
  199. package/dist/types/Share.js +51 -0
  200. package/dist/types/Source.d.ts +20 -5
  201. package/dist/types/Source.js +45 -0
  202. package/dist/types/SourceMeta.d.ts +9 -2
  203. package/dist/types/SourceMeta.js +21 -0
  204. package/dist/types/Tenant.d.ts +20 -5
  205. package/dist/types/Tenant.js +45 -0
  206. package/dist/types/TenantMeta.d.ts +7 -2
  207. package/dist/types/TenantMeta.js +15 -0
  208. package/dist/types/TenantTrustedDomain.d.ts +10 -3
  209. package/dist/types/TenantTrustedDomain.js +21 -0
  210. package/dist/types/UserData.d.ts +12 -3
  211. package/dist/types/UserData.js +27 -0
  212. package/dist/types/WebPush.d.ts +13 -4
  213. package/dist/types/WebPush.js +27 -0
  214. package/dist/types/Widget.d.ts +14 -3
  215. package/dist/types/Widget.js +33 -0
  216. package/dist/types/WidgetPreset.d.ts +40 -0
  217. package/dist/types/WidgetPreset.js +65 -0
  218. package/dist/types/_Role.d.ts +3 -3
  219. package/dist/types/_Session.d.ts +5 -5
  220. package/dist/types/_User.d.ts +11 -9
  221. package/dist/types/index.d.ts +108 -29
  222. package/dist/types/index.js +104 -0
  223. package/package.json +2 -2
  224. package/schema/Alarm.json +4 -0
  225. package/schema/AlarmAction.json +5 -0
  226. package/schema/Attachment.json +44 -0
  227. package/schema/BDE_Form.json +9 -10
  228. package/schema/BDE_List.json +7 -9
  229. package/schema/BDE_ListEntry.json +7 -9
  230. package/schema/BDE_Page.json +7 -9
  231. package/schema/BDE_Result.json +7 -9
  232. package/schema/BDE_Unit.json +9 -8
  233. package/schema/Dashboard.json +9 -0
  234. package/schema/Group.json +39 -0
  235. package/schema/Group_UserRelation.json +40 -0
  236. package/schema/Knowledge_Article.json +54 -0
  237. package/schema/Knowledge_Category.json +50 -0
  238. package/schema/Knowledge_Document.json +54 -0
  239. package/schema/Knowledge_DocumentPage.json +53 -0
  240. package/schema/Knowledge_Video.json +62 -0
  241. package/schema/Language.json +35 -0
  242. package/schema/Maintenance_Article.json +56 -0
  243. package/schema/Maintenance_Downtime.json +48 -0
  244. package/schema/Maintenance_Duedate.json +61 -0
  245. package/schema/Maintenance_Frequency.json +48 -0
  246. package/schema/Maintenance_Issuecategory.json +60 -0
  247. package/schema/Maintenance_Kanban_State.json +60 -0
  248. package/schema/Maintenance_Media.json +43 -0
  249. package/schema/Maintenance_Priority.json +48 -0
  250. package/schema/Maintenance_Restriction.json +48 -0
  251. package/schema/Maintenance_Schedule.json +53 -0
  252. package/schema/Maintenance_Schedule_Step.json +60 -0
  253. package/schema/Maintenance_Ticket.json +47 -0
  254. package/schema/Maintenance_Ticket_Issuecategory.json +48 -0
  255. package/schema/Maintenance_Ticket_Kanban_State.json +48 -0
  256. package/schema/Maintenance_Ticket_Source.json +48 -0
  257. package/schema/Tenant.json +3 -0
  258. package/schema/WidgetPreset.json +79 -0
@@ -1,177 +1,96 @@
1
1
  "use strict";
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 };
36
- }
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.init = void 0;
40
- var __1 = require("..");
41
- function init(className) {
42
- return __awaiter(this, void 0, void 0, function () {
43
- var _this = this;
44
- return __generator(this, function (_a) {
45
- (0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
46
- var object, original, user, meta, rootSource, sourceACL, dataSource;
47
- var _a, _b;
48
- return __generator(this, function (_c) {
49
- switch (_c.label) {
50
- case 0:
51
- object = request.object, original = request.original, user = request.user;
52
- return [4 /*yield*/, (0, __1.defaultHandler)(request)];
53
- case 1:
54
- _c.sent();
55
- return [4 /*yield*/, (0, __1.immutableField)(request, "tagPrefix", "opendash:tenant:change-tag-prefix")];
56
- case 2:
57
- _c.sent();
58
- if (!object.id) return [3 /*break*/, 7];
59
- object.setACL(new Parse.ACL((_a = {},
60
- _a["role:od-tenant-user-".concat(object.id)] = {
61
- read: true,
62
- },
63
- _a["role:od-tenant-admin-".concat(object.id)] = {
64
- read: true,
65
- write: true,
66
- },
67
- _a["role:od-admin"] = {
68
- read: true,
69
- write: true,
70
- },
71
- _a)));
72
- if (!!object.get("meta")) return [3 /*break*/, 4];
73
- meta = new Parse.Object("".concat(__1.PREFIX, "TenantMeta"), {
74
- tenant: object,
75
- });
76
- return [4 /*yield*/, meta.save(null, { useMasterKey: true, cascadeSave: false })];
77
- case 3:
78
- _c.sent();
79
- object.set("meta", meta);
80
- _c.label = 4;
81
- case 4:
82
- // Handle default tag prefix
83
- if (request.context.beforeSaveAfterCreation) {
84
- object.set("tagPrefix", "tenant-".concat(object.id, "-"));
85
- }
86
- return [4 /*yield*/, new Parse.Query("".concat(__1.PREFIX, "Source"))
87
- .equalTo("tag", "tenant-root-source")
88
- .first({ useMasterKey: true })];
89
- case 5:
90
- rootSource = _c.sent();
91
- sourceACL = new Parse.ACL((_b = {},
92
- _b["role:od-tenant-user-".concat(object.id)] = {
93
- read: true,
94
- },
95
- _b));
96
- dataSource = object.get("dataSource");
97
- if (!dataSource) {
98
- dataSource = new Parse.Object("".concat(__1.PREFIX, "Source"));
99
- }
100
- dataSource.setACL(sourceACL);
101
- if (rootSource) {
102
- dataSource.set("parent", rootSource);
103
- }
104
- dataSource.set("name", object.get("label"));
105
- dataSource.set("tag", "tenant-data-".concat(object.id));
106
- return [4 /*yield*/, dataSource.save(null, { useMasterKey: true })];
107
- case 6:
108
- _c.sent();
109
- object.set("dataSource", dataSource);
110
- _c.label = 7;
111
- case 7: return [2 /*return*/];
112
- }
113
- });
114
- }); });
115
- (0, __1.afterSaveHook)(className, function (_a) {
116
- var object = _a.object, original = _a.original, user = _a.user;
117
- return __awaiter(_this, void 0, void 0, function () {
118
- var users, _i, users_1, user_1;
119
- var _b;
120
- return __generator(this, function (_c) {
121
- switch (_c.label) {
122
- case 0: return [4 /*yield*/, (0, __1.ensureRole)("od-tenant-admin-".concat(object.id), {
123
- label: "".concat(object.get("label"), " (Admin)"),
124
- })];
125
- case 1:
126
- _c.sent();
127
- return [4 /*yield*/, (0, __1.ensureRole)("od-tenant-user-".concat(object.id), {
128
- label: object.get("label"),
129
- acl: new Parse.ACL((_b = {},
130
- _b["role:od-tenant-user-".concat(object.id)] = {
131
- read: true,
132
- },
133
- _b)),
134
- })];
135
- case 2:
136
- _c.sent();
137
- if (!!original) return [3 /*break*/, 4];
138
- // trigger beforeSave after creation
139
- return [4 /*yield*/, object.save(null, {
140
- useMasterKey: true,
141
- context: {
142
- beforeSaveAfterCreation: true,
143
- },
144
- })];
145
- case 3:
146
- // trigger beforeSave after creation
147
- _c.sent();
148
- _c.label = 4;
149
- case 4:
150
- if (!(original &&
151
- object.get("interactWithOtherTenants") !==
152
- original.get("interactWithOtherTenants"))) return [3 /*break*/, 7];
153
- return [4 /*yield*/, new Parse.Query(Parse.User)
154
- .equalTo("tenant", object)
155
- .limit(1000000)
156
- .find({ useMasterKey: true })];
157
- case 5:
158
- users = _c.sent();
159
- for (_i = 0, users_1 = users; _i < users_1.length; _i++) {
160
- user_1 = users_1[_i];
161
- user_1.set("tenantGlobal", object.get("interactWithOtherTenants"));
162
- user_1.set("tenantChanged", true);
163
- }
164
- return [4 /*yield*/, Parse.Object.saveAll(users, { useMasterKey: true })];
165
- case 6:
166
- _c.sent();
167
- _c.label = 7;
168
- case 7: return [2 /*return*/];
169
- }
170
- });
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.Tenant, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ await (0, __1.immutableField)(request, "tagPrefix", "opendash:tenant:change-tag-prefix");
11
+ if (object.id) {
12
+ object.setACL(new Parse.ACL({
13
+ [`role:od-tenant-user-${object.id}`]: {
14
+ read: true,
15
+ },
16
+ [`role:od-tenant-admin-${object.id}`]: {
17
+ read: true,
18
+ write: true,
19
+ },
20
+ [`role:od-admin`]: {
21
+ read: true,
22
+ write: true,
23
+ },
24
+ }));
25
+ // Handle Tenant Meta
26
+ if (!object.get("meta")) {
27
+ const meta = new Parse.Object(`${__1.PREFIX}TenantMeta`, {
28
+ tenant: object,
171
29
  });
30
+ await meta.save(null, { useMasterKey: true, cascadeSave: false });
31
+ object.set("meta", meta);
32
+ }
33
+ // Handle default tag prefix
34
+ if (request.context.beforeSaveAfterCreation) {
35
+ object.set("tagPrefix", `tenant-${object.id}-`);
36
+ }
37
+ // Handle Data Source
38
+ const rootSource = await new Parse.Query(`${__1.PREFIX}Source`)
39
+ .equalTo("tag", "tenant-root-source")
40
+ .first({ useMasterKey: true });
41
+ const sourceACL = new Parse.ACL({
42
+ [`role:od-tenant-user-${object.id}`]: {
43
+ read: true,
44
+ },
172
45
  });
173
- return [2 /*return*/];
46
+ let dataSource = object.get("dataSource");
47
+ if (!dataSource) {
48
+ dataSource = new Parse.Object(`${__1.PREFIX}Source`);
49
+ }
50
+ dataSource.setACL(sourceACL);
51
+ if (rootSource) {
52
+ dataSource.set("parent", rootSource);
53
+ }
54
+ dataSource.set("name", object.get("label"));
55
+ dataSource.set("tag", `tenant-data-${object.id}`);
56
+ await dataSource.save(null, { useMasterKey: true });
57
+ object.set("dataSource", dataSource);
58
+ }
59
+ });
60
+ (0, __1.afterSaveHook)(types_1.Tenant, async ({ object, original, user }) => {
61
+ await (0, __1.ensureRole)(`od-tenant-admin-${object.id}`, {
62
+ label: `${object.get("label")} (Admin)`,
63
+ });
64
+ await (0, __1.ensureRole)(`od-tenant-user-${object.id}`, {
65
+ label: object.get("label"),
66
+ acl: new Parse.ACL({
67
+ [`role:od-tenant-user-${object.id}`]: {
68
+ read: true,
69
+ },
70
+ }),
174
71
  });
72
+ if (!original) {
73
+ // trigger beforeSave after creation
74
+ await object.save(null, {
75
+ useMasterKey: true,
76
+ context: {
77
+ beforeSaveAfterCreation: true,
78
+ },
79
+ });
80
+ }
81
+ if (original &&
82
+ object.get("interactWithOtherTenants") !==
83
+ original.get("interactWithOtherTenants")) {
84
+ const users = await new Parse.Query(Parse.User)
85
+ .equalTo("tenant", object)
86
+ .limit(1000000)
87
+ .find({ useMasterKey: true });
88
+ for (const user of users) {
89
+ user.set("tenantGlobal", object.get("interactWithOtherTenants"));
90
+ user.set("tenantChanged", true);
91
+ }
92
+ await Parse.Object.saveAll(users, { useMasterKey: true });
93
+ }
175
94
  });
176
95
  }
177
96
  exports.init = init;
@@ -1 +1 @@
1
- export declare function init(className: string): Promise<void>;
1
+ export declare function init(): Promise<void>;
@@ -1,62 +1,12 @@
1
1
  "use strict";
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 };
36
- }
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.init = void 0;
40
- var __1 = require("..");
41
- function init(className) {
42
- return __awaiter(this, void 0, void 0, function () {
43
- var _this = this;
44
- return __generator(this, function (_a) {
45
- (0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
46
- return __generator(this, function (_a) {
47
- switch (_a.label) {
48
- case 0: return [4 /*yield*/, (0, __1.defaultHandler)(request)];
49
- case 1:
50
- _a.sent();
51
- return [2 /*return*/];
52
- }
53
- });
54
- }); });
55
- (0, __1.afterSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
56
- return [2 /*return*/];
57
- }); }); });
58
- return [2 /*return*/];
59
- });
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.TenantMeta, async (request) => {
8
+ await (0, __1.defaultHandler)(request);
60
9
  });
10
+ (0, __1.afterSaveHook)(types_1.TenantMeta, async (request) => { });
61
11
  }
62
12
  exports.init = init;
@@ -1 +1 @@
1
- export declare function init(className: string): Promise<void>;
1
+ export declare function init(): Promise<void>;
@@ -1,62 +1,12 @@
1
1
  "use strict";
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 };
36
- }
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.init = void 0;
40
- var __1 = require("..");
41
- function init(className) {
42
- return __awaiter(this, void 0, void 0, function () {
43
- var _this = this;
44
- return __generator(this, function (_a) {
45
- (0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
46
- return __generator(this, function (_a) {
47
- switch (_a.label) {
48
- case 0: return [4 /*yield*/, (0, __1.defaultHandler)(request)];
49
- case 1:
50
- _a.sent();
51
- return [2 /*return*/];
52
- }
53
- });
54
- }); });
55
- (0, __1.afterSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
56
- return [2 /*return*/];
57
- }); }); });
58
- return [2 /*return*/];
59
- });
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.TenantTrustedDomain, async (request) => {
8
+ await (0, __1.defaultHandler)(request);
60
9
  });
10
+ (0, __1.afterSaveHook)(types_1.TenantTrustedDomain, async (request) => { });
61
11
  }
62
12
  exports.init = init;
@@ -1 +1 @@
1
- export declare function init(className: string): Promise<void>;
1
+ export declare function init(): Promise<void>;
@@ -1,70 +1,16 @@
1
1
  "use strict";
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 };
36
- }
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.init = void 0;
40
- var __1 = require("..");
41
- function init(className) {
42
- return __awaiter(this, void 0, void 0, function () {
43
- var _this = this;
44
- return __generator(this, function (_a) {
45
- (0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
46
- var object, original, user;
47
- return __generator(this, function (_a) {
48
- switch (_a.label) {
49
- case 0:
50
- object = request.object, original = request.original, user = request.user;
51
- return [4 /*yield*/, (0, __1.defaultHandler)(request)];
52
- case 1:
53
- _a.sent();
54
- return [2 /*return*/];
55
- }
56
- });
57
- }); });
58
- (0, __1.afterSaveHook)(className, function (_a) {
59
- var object = _a.object, original = _a.original, user = _a.user;
60
- return __awaiter(_this, void 0, void 0, function () {
61
- return __generator(this, function (_b) {
62
- return [2 /*return*/];
63
- });
64
- });
65
- });
66
- return [2 /*return*/];
67
- });
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.UserData, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ // TODO
11
+ });
12
+ (0, __1.afterSaveHook)(types_1.UserData, async ({ object, original, user }) => {
13
+ // TODO
68
14
  });
69
15
  }
70
16
  exports.init = init;
@@ -1 +1 @@
1
- export declare function init(className: string): Promise<void>;
1
+ export declare function init(): Promise<void>;
@@ -1,83 +1,27 @@
1
1
  "use strict";
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 };
36
- }
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.init = void 0;
40
- var __1 = require("..");
41
- function init(className) {
42
- return __awaiter(this, void 0, void 0, function () {
43
- var _this = this;
44
- return __generator(this, function (_a) {
45
- (0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
46
- var object, original, user;
47
- var _a;
48
- return __generator(this, function (_b) {
49
- switch (_b.label) {
50
- case 0:
51
- object = request.object, original = request.original, user = request.user;
52
- return [4 /*yield*/, (0, __1.defaultHandler)(request)];
53
- case 1:
54
- _b.sent();
55
- if (!user && !object.get("user")) {
56
- throw new Parse.Error(142, "User Missing");
57
- }
58
- if (user && object.get("user") && user.id !== object.get("user").id) {
59
- throw new Parse.Error(142, "Invalid User");
60
- }
61
- if (user) {
62
- object.set("user", user);
63
- }
64
- object.setACL(new Parse.ACL((_a = {},
65
- _a[object.get("user").id] = { read: true, write: true },
66
- _a)));
67
- return [2 /*return*/];
68
- }
69
- });
70
- }); });
71
- (0, __1.afterSaveHook)(className, function (_a) {
72
- var object = _a.object, original = _a.original, user = _a.user;
73
- return __awaiter(_this, void 0, void 0, function () {
74
- return __generator(this, function (_b) {
75
- return [2 /*return*/];
76
- });
77
- });
78
- });
79
- return [2 /*return*/];
80
- });
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.WebPush, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ if (!user && !object.get("user")) {
11
+ throw new Parse.Error(142, "User Missing");
12
+ }
13
+ if (user && object.get("user") && user.id !== object.get("user").id) {
14
+ throw new Parse.Error(142, "Invalid User");
15
+ }
16
+ if (user) {
17
+ object.set("user", user);
18
+ }
19
+ object.setACL(new Parse.ACL({
20
+ [object.get("user").id]: { read: true, write: true },
21
+ }));
22
+ });
23
+ (0, __1.afterSaveHook)(types_1.WebPush, async ({ object, original, user }) => {
24
+ // TODO
81
25
  });
82
26
  }
83
27
  exports.init = init;
@@ -1 +1 @@
1
- export declare function init(className: string): Promise<void>;
1
+ export declare function init(): Promise<void>;