@saltcorn/server 0.6.2-beta.1 → 0.6.2-beta.2

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/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@saltcorn/server",
3
- "version": "0.6.2-beta.1",
3
+ "version": "0.6.2-beta.2",
4
4
  "description": "Server app for Saltcorn, open-source no-code platform",
5
5
  "homepage": "https://saltcorn.com",
6
6
  "main": "index.js",
7
7
  "license": "MIT",
8
8
  "dependencies": {
9
- "@saltcorn/base-plugin": "0.6.2-beta.1",
10
- "@saltcorn/builder": "0.6.2-beta.1",
11
- "@saltcorn/data": "0.6.2-beta.1",
9
+ "@saltcorn/base-plugin": "0.6.2-beta.2",
10
+ "@saltcorn/builder": "0.6.2-beta.2",
11
+ "@saltcorn/data": "0.6.2-beta.2",
12
12
  "greenlock-express": "^4.0.3",
13
- "@saltcorn/markup": "0.6.2-beta.1",
14
- "@saltcorn/sbadmin2": "0.6.2-beta.1",
13
+ "@saltcorn/markup": "0.6.2-beta.2",
14
+ "@saltcorn/sbadmin2": "0.6.2-beta.2",
15
15
  "@socket.io/cluster-adapter": "^0.1.0",
16
16
  "@socket.io/sticky": "^1.0.1",
17
17
  "connect-flash": "^0.1.1",
@@ -40,7 +40,12 @@
40
40
  "pg": "^8.2.1",
41
41
  "pluralize": "^8.0.0",
42
42
  "socket.io": "4.2.0",
43
- "tmp-promise": "^3.0.2"
43
+ "tmp-promise": "^3.0.2",
44
+ "multer-s3": "^2.10.0",
45
+ "multer": "^1.4.3",
46
+ "aws-sdk": "^2.1037.0",
47
+ "uuid": "^8.2.0",
48
+ "content-disposition": "^0.5.3"
44
49
  },
45
50
  "optionalDependencies": {
46
51
  "sd-notify": "^2.8.0"
@@ -67,7 +72,9 @@
67
72
  "/plugin_packages/"
68
73
  ],
69
74
  "moduleNameMapper": {
70
- "@saltcorn/sqlite/(.*)": "@saltcorn/sqlite/dist/$1"
75
+ "@saltcorn/sqlite/(.*)": "@saltcorn/sqlite/dist/$1",
76
+ "@saltcorn/db-common/(.*)": "@saltcorn/db-common/dist/$1",
77
+ "@saltcorn/data/(.*)": "@saltcorn/data/dist/$1"
71
78
  }
72
79
  },
73
80
  "publishConfig": {
@@ -65,11 +65,11 @@ div.testrunoutput code {
65
65
  }
66
66
 
67
67
  div[data-inline-edit-dest-url] .editicon {
68
- display: none;
68
+ visibility: hidden;
69
69
  }
70
70
 
71
71
  div[data-inline-edit-dest-url]:hover .editicon {
72
- display: inline;
72
+ visibility: visible;
73
73
  }
74
74
  .searchbar-dropdown {
75
75
  left: unset;
@@ -7,6 +7,8 @@ const path = require("path");
7
7
  const { spawnSync } = require("child_process");
8
8
  const watch = require("node-watch");
9
9
  const Plugin = require("@saltcorn/data/models/plugin");
10
+ const db = require("@saltcorn/data/db");
11
+ const { eachTenant } = require("@saltcorn/data/models/tenant");
10
12
 
11
13
  /**
12
14
  * packages that should trigger a server re-start
@@ -63,8 +65,15 @@ const getRelevantPackages = () => {
63
65
  * @returns {string[]} list of paths to relevant directories
64
66
  */
65
67
  const getPluginDirectories = async () => {
66
- const local_plugins = await Plugin.find({ source: "local" });
67
- return local_plugins.map((p) => p.location);
68
+ const getDirs = async () => {
69
+ const local_plugins = await Plugin.find({ source: "local" });
70
+ return local_plugins.map((p) => p.location);
71
+ };
72
+ const listOfDirs = [];
73
+ await eachTenant(async () => {
74
+ listOfDirs.push(await getDirs());
75
+ });
76
+ return [...new Set(listOfDirs.flat(1))];
68
77
  };
69
78
 
70
79
  const projectRoot = getProjectRoot();
package/routes/actions.js CHANGED
@@ -5,12 +5,7 @@
5
5
  * @subcategory routes
6
6
  */
7
7
  const Router = require("express-promise-router");
8
- const {
9
- isAdmin,
10
- setTenant,
11
- error_catcher,
12
- get_base_url,
13
- } = require("./utils.js");
8
+ const { isAdmin, error_catcher, get_base_url } = require("./utils.js");
14
9
  const { getState } = require("@saltcorn/data/db/state");
15
10
  const Trigger = require("@saltcorn/data/models/trigger");
16
11
 
@@ -87,7 +82,6 @@ const getActions = async () => {
87
82
  */
88
83
  router.get(
89
84
  "/",
90
- setTenant,
91
85
  isAdmin,
92
86
  error_catcher(async (req, res) => {
93
87
  const triggers = await Trigger.findAllWithTableName();
@@ -288,7 +282,6 @@ const triggerForm = async (req, trigger) => {
288
282
  */
289
283
  router.get(
290
284
  "/new",
291
- setTenant,
292
285
  isAdmin,
293
286
  error_catcher(async (req, res) => {
294
287
  const form = await triggerForm(req);
@@ -314,7 +307,6 @@ router.get(
314
307
  */
315
308
  router.get(
316
309
  "/edit/:id",
317
- setTenant,
318
310
  isAdmin,
319
311
  error_catcher(async (req, res) => {
320
312
  const { id } = req.params;
@@ -344,7 +336,6 @@ router.get(
344
336
  */
345
337
  router.post(
346
338
  "/new",
347
- setTenant,
348
339
  isAdmin,
349
340
  error_catcher(async (req, res) => {
350
341
  const form = await triggerForm(req);
@@ -384,7 +375,6 @@ router.post(
384
375
  */
385
376
  router.post(
386
377
  "/edit/:id",
387
- setTenant,
388
378
  isAdmin,
389
379
  error_catcher(async (req, res) => {
390
380
  const { id } = req.params;
@@ -427,7 +417,6 @@ router.post(
427
417
  */
428
418
  router.get(
429
419
  "/configure/:id",
430
- setTenant,
431
420
  isAdmin,
432
421
  error_catcher(async (req, res) => {
433
422
  const { id } = req.params;
@@ -543,7 +532,6 @@ router.get(
543
532
  */
544
533
  router.post(
545
534
  "/configure/:id",
546
- setTenant,
547
535
  isAdmin,
548
536
  error_catcher(async (req, res) => {
549
537
  const { id } = req.params;
@@ -585,7 +573,6 @@ router.post(
585
573
  */
586
574
  router.post(
587
575
  "/delete/:id",
588
- setTenant,
589
576
  isAdmin,
590
577
  error_catcher(async (req, res) => {
591
578
  const { id } = req.params;
@@ -602,7 +589,6 @@ router.post(
602
589
  */
603
590
  router.get(
604
591
  "/testrun/:id",
605
- setTenant,
606
592
  isAdmin,
607
593
  error_catcher(async (req, res) => {
608
594
  const { id } = req.params;
package/routes/admin.js CHANGED
@@ -5,12 +5,7 @@
5
5
  */
6
6
  const Router = require("express-promise-router");
7
7
 
8
- const {
9
- setTenant,
10
- isAdmin,
11
- error_catcher,
12
- getGitRevision,
13
- } = require("./utils.js");
8
+ const { isAdmin, error_catcher, getGitRevision } = require("./utils.js");
14
9
  const Table = require("@saltcorn/data/models/table");
15
10
  const Plugin = require("@saltcorn/data/models/plugin");
16
11
  const File = require("@saltcorn/data/models/file");
@@ -52,6 +47,7 @@ const load_plugins = require("../load_plugins");
52
47
  const {
53
48
  restore_backup,
54
49
  send_admin_page,
50
+ send_files_page,
55
51
  config_fields_form,
56
52
  save_config_from_form,
57
53
  flash_restart_if_required,
@@ -66,6 +62,7 @@ const {
66
62
  is_hsts_tld,
67
63
  } = require("../markup/admin");
68
64
  const moment = require("moment");
65
+ const View = require("@saltcorn/data/models/view");
69
66
 
70
67
  /**
71
68
  * @type {object}
@@ -78,7 +75,7 @@ const router = new Router();
78
75
  module.exports = router;
79
76
 
80
77
  /**
81
- * @param {object} req
78
+ * @param {object} req
82
79
  * @returns {Promise<Form>}
83
80
  */
84
81
  const site_id_form = (req) =>
@@ -131,7 +128,6 @@ const email_form = async (req) => {
131
128
  */
132
129
  router.get(
133
130
  "/",
134
- setTenant,
135
131
  isAdmin,
136
132
  error_catcher(async (req, res) => {
137
133
  const isRoot = db.getTenantSchema() === db.connectObj.default_schema;
@@ -156,7 +152,6 @@ router.get(
156
152
  */
157
153
  router.post(
158
154
  "/",
159
- setTenant,
160
155
  isAdmin,
161
156
  error_catcher(async (req, res) => {
162
157
  const form = await site_id_form(req);
@@ -189,7 +184,6 @@ router.post(
189
184
  */
190
185
  router.get(
191
186
  "/email",
192
- setTenant,
193
187
  isAdmin,
194
188
  error_catcher(async (req, res) => {
195
189
  const form = await email_form(req);
@@ -223,7 +217,6 @@ router.get(
223
217
  */
224
218
  router.get(
225
219
  "/send-test-email",
226
- setTenant,
227
220
  isAdmin,
228
221
  error_catcher(async (req, res) => {
229
222
  const from = getState().getConfig("email_from");
@@ -254,7 +247,6 @@ router.get(
254
247
  */
255
248
  router.post(
256
249
  "/email",
257
- setTenant,
258
250
  isAdmin,
259
251
  error_catcher(async (req, res) => {
260
252
  const form = await email_form(req);
@@ -285,7 +277,6 @@ router.post(
285
277
  */
286
278
  router.get(
287
279
  "/backup",
288
- setTenant,
289
280
  isAdmin,
290
281
  error_catcher(async (req, res) => {
291
282
  send_admin_page({
@@ -330,7 +321,6 @@ router.get(
330
321
  */
331
322
  router.get(
332
323
  "/system",
333
- setTenant,
334
324
  isAdmin,
335
325
  error_catcher(async (req, res) => {
336
326
  const isRoot = db.getTenantSchema() === db.connectObj.default_schema;
@@ -450,7 +440,6 @@ router.get(
450
440
  */
451
441
  router.post(
452
442
  "/restart",
453
- setTenant,
454
443
  isAdmin,
455
444
  error_catcher(async (req, res) => {
456
445
  if (db.getTenantSchema() === db.connectObj.default_schema) {
@@ -473,7 +462,6 @@ router.post(
473
462
  */
474
463
  router.post(
475
464
  "/upgrade",
476
- setTenant,
477
465
  isAdmin,
478
466
  error_catcher(async (req, res) => {
479
467
  if (db.getTenantSchema() !== db.connectObj.default_schema) {
@@ -510,7 +498,6 @@ router.post(
510
498
  */
511
499
  router.post(
512
500
  "/backup",
513
- setTenant,
514
501
  isAdmin,
515
502
  error_catcher(async (req, res) => {
516
503
  const fileName = await create_backup();
@@ -531,7 +518,6 @@ router.post(
531
518
  */
532
519
  router.post(
533
520
  "/restore",
534
- setTenant,
535
521
  isAdmin,
536
522
  error_catcher(async (req, res) => {
537
523
  const newPath = File.get_new_path();
@@ -547,7 +533,7 @@ router.post(
547
533
  );
548
534
 
549
535
  /**
550
- * @param {object} req
536
+ * @param {object} req
551
537
  * @returns {Form}
552
538
  */
553
539
  const clearAllForm = (req) =>
@@ -628,7 +614,6 @@ const clearAllForm = (req) =>
628
614
  */
629
615
  router.post(
630
616
  "/enable-letsencrypt",
631
- setTenant,
632
617
  isAdmin,
633
618
  error_catcher(async (req, res) => {
634
619
  if (db.getTenantSchema() === db.connectObj.default_schema) {
@@ -706,7 +691,6 @@ router.post(
706
691
  */
707
692
  router.get(
708
693
  "/clear-all",
709
- setTenant,
710
694
  isAdmin,
711
695
  error_catcher(async (req, res) => {
712
696
  res.sendWrap(req.__(`Admin`), {
@@ -736,7 +720,6 @@ router.get(
736
720
  */
737
721
  router.post(
738
722
  "/clear-all",
739
- setTenant,
740
723
  isAdmin,
741
724
  error_catcher(async (req, res) => {
742
725
  const form = clearAllForm(req);
@@ -746,7 +729,7 @@ router.post(
746
729
  await db.deleteWhere("_sc_pages");
747
730
  }
748
731
  if (form.values.views) {
749
- await db.deleteWhere("_sc_views");
732
+ await View.delete({});
750
733
  }
751
734
  //user fields
752
735
  const users = await Table.findOne({ name: "users" });
package/routes/api.js CHANGED
@@ -16,7 +16,7 @@
16
16
  /** @type {module:express-promise-router} */
17
17
  const Router = require("express-promise-router");
18
18
  //const db = require("@saltcorn/data/db");
19
- const { setTenant, error_catcher } = require("./utils.js");
19
+ const { error_catcher } = require("./utils.js");
20
20
  //const { mkTable, renderForm, link, post_btn } = require("@saltcorn/markup");
21
21
  const { getState } = require("@saltcorn/data/db/state");
22
22
  const Table = require("@saltcorn/data/models/table");
@@ -41,7 +41,7 @@ const router = new Router();
41
41
  module.exports = router;
42
42
 
43
43
  /**
44
- * @param {*} fields
44
+ * @param {*} fields
45
45
  * @returns {*}
46
46
  */
47
47
  const limitFields = (fields) => (r) => {
@@ -64,14 +64,14 @@ const limitFields = (fields) => (r) => {
64
64
  * @param {Table} table
65
65
  * @returns {boolean}
66
66
  */
67
- function accessAllowedRead(req, user, table){
68
- const role = req.isAuthenticated()
69
- ? req.user.role_id
70
- : user && user.role_id
71
- ? user.role_id
72
- : 10;
67
+ function accessAllowedRead(req, user, table) {
68
+ const role = req.isAuthenticated()
69
+ ? req.user.role_id
70
+ : user && user.role_id
71
+ ? user.role_id
72
+ : 10;
73
73
 
74
- return role <= table.min_role_read;
74
+ return role <= table.min_role_read;
75
75
  }
76
76
 
77
77
  /**
@@ -81,15 +81,14 @@ function accessAllowedRead(req, user, table){
81
81
  * @param {Table} table
82
82
  * @returns {boolean}
83
83
  */
84
- function accessAllowedWrite(req, user, table){
85
- const role = req.isAuthenticated()
86
- ? req.user.role_id
87
- : user && user.role_id
88
- ? user.role_id
89
- : 10;
90
-
91
- return role <= table.min_role_write;
84
+ function accessAllowedWrite(req, user, table) {
85
+ const role = req.isAuthenticated()
86
+ ? req.user.role_id
87
+ : user && user.role_id
88
+ ? user.role_id
89
+ : 10;
92
90
 
91
+ return role <= table.min_role_write;
93
92
  }
94
93
  /**
95
94
  * Check that user has right to trigger call
@@ -98,14 +97,14 @@ function accessAllowedWrite(req, user, table){
98
97
  * @param {Trigger} trigger
99
98
  * @returns {boolean}
100
99
  */
101
- function accessAllowed(req, user, trigger){
102
- const role = req.isAuthenticated()
103
- ? req.user.role_id
104
- : user && user.role_id
105
- ? user.role_id
106
- : 10;
100
+ function accessAllowed(req, user, trigger) {
101
+ const role = req.isAuthenticated()
102
+ ? req.user.role_id
103
+ : user && user.role_id
104
+ ? user.role_id
105
+ : 10;
107
106
 
108
- return role <= trigger.min_role;
107
+ return role <= trigger.min_role;
109
108
  }
110
109
 
111
110
  /**
@@ -117,7 +116,6 @@ function accessAllowed(req, user, trigger){
117
116
  // todo add paging
118
117
  router.get(
119
118
  "/:tableName/",
120
- setTenant,
121
119
  //passport.authenticate("api-bearer", { session: false }),
122
120
  error_catcher(async (req, res, next) => {
123
121
  const { tableName } = req.params;
@@ -176,7 +174,6 @@ router.get(
176
174
  */
177
175
  router.post(
178
176
  "/action/:actionname/",
179
- setTenant,
180
177
  error_catcher(async (req, res, next) => {
181
178
  const { actionname } = req.params;
182
179
  // todo protect action by authorization check
@@ -189,30 +186,30 @@ router.post(
189
186
  when_trigger: "API call",
190
187
  });
191
188
 
192
- if (!trigger){
193
- res.status(400).json({ error: req.__("Not found") });
194
- return;
189
+ if (!trigger) {
190
+ res.status(400).json({ error: req.__("Not found") });
191
+ return;
195
192
  }
196
193
  await passport.authenticate(
197
- "api-bearer",
198
- { session: false },
199
- async function (err, user, info) {
200
- if (accessAllowed(req, user, trigger)) {
201
- try {
202
- const action = getState().actions[trigger.action];
203
- const resp = await action.run({
204
- configuration: trigger.configuration,
205
- body: req.body,
206
- req,
207
- });
208
- res.json({success: true, data: resp});
209
- } catch (e) {
210
- res.status(400).json({success: false, error: e.message});
211
- }
212
- } else {
213
- res.status(401).json({ error: req.__("Not authorized") });
214
- }
194
+ "api-bearer",
195
+ { session: false },
196
+ async function (err, user, info) {
197
+ if (accessAllowed(req, user, trigger)) {
198
+ try {
199
+ const action = getState().actions[trigger.action];
200
+ const resp = await action.run({
201
+ configuration: trigger.configuration,
202
+ body: req.body,
203
+ req,
204
+ });
205
+ res.json({ success: true, data: resp });
206
+ } catch (e) {
207
+ res.status(400).json({ success: false, error: e.message });
208
+ }
209
+ } else {
210
+ res.status(401).json({ error: req.__("Not authorized") });
215
211
  }
212
+ }
216
213
  )(req, res, next);
217
214
  })
218
215
  );
@@ -225,7 +222,6 @@ router.post(
225
222
  */
226
223
  router.post(
227
224
  "/:tableName/",
228
- setTenant,
229
225
  error_catcher(async (req, res, next) => {
230
226
  const { tableName } = req.params;
231
227
  const table = await Table.findOne({ name: tableName });
@@ -294,7 +290,6 @@ router.post(
294
290
  */
295
291
  router.post(
296
292
  "/:tableName/:id",
297
- setTenant,
298
293
  error_catcher(async (req, res, next) => {
299
294
  const { tableName, id } = req.params;
300
295
  const table = await Table.findOne({ name: tableName });
@@ -355,7 +350,6 @@ router.post(
355
350
  router.delete(
356
351
  "/:tableName/:id",
357
352
  // in case of primary key different from id - id will be string "undefined"
358
- setTenant,
359
353
  error_catcher(async (req, res, next) => {
360
354
  const { tableName, id } = req.params;
361
355
  const table = await Table.findOne({ name: tableName });
@@ -368,17 +362,14 @@ router.delete(
368
362
  { session: false },
369
363
  async function (err, user, info) {
370
364
  if (accessAllowedWrite(req, user, table)) {
371
-
372
365
  try {
373
- if(id === "undefined"){
374
- const pk_name = table.pk_name;
375
- //const fields = await table.getFields();
376
- const row = req.body;
377
- //readState(row, fields);
378
- await table.deleteRows({ [pk_name]: row[pk_name]} );
379
- }
380
- else
381
- await table.deleteRows({ id });
366
+ if (id === "undefined") {
367
+ const pk_name = table.pk_name;
368
+ //const fields = await table.getFields();
369
+ const row = req.body;
370
+ //readState(row, fields);
371
+ await table.deleteRows({ [pk_name]: row[pk_name] });
372
+ } else await table.deleteRows({ id });
382
373
  res.json({ success: true });
383
374
  } catch (e) {
384
375
  res.status(400).json({ error: e.message });
package/routes/config.js CHANGED
@@ -48,7 +48,6 @@ module.exports = router;
48
48
  */
49
49
  router.post(
50
50
  "/delete/:key",
51
- setTenant,
52
51
  isAdmin,
53
52
  error_catcher(async (req, res) => {
54
53
  const { key } = req.params;
@@ -20,7 +20,7 @@ const {
20
20
  p,
21
21
  } = require("@saltcorn/markup/tags");
22
22
 
23
- const { setTenant, isAdmin, error_catcher } = require("./utils.js");
23
+ const { isAdmin, error_catcher } = require("./utils.js");
24
24
  const { send_events_page } = require("../markup/admin.js");
25
25
 
26
26
  /**
@@ -41,7 +41,6 @@ module.exports = router;
41
41
  */
42
42
  router.get(
43
43
  "/",
44
- setTenant,
45
44
  isAdmin,
46
45
  error_catcher(async (req, res) => {
47
46
  const state = req.query,
@@ -103,7 +102,6 @@ router.get(
103
102
  */
104
103
  router.post(
105
104
  "/",
106
- setTenant,
107
105
  isAdmin,
108
106
  error_catcher(async (req, res) => {
109
107
  const err = {
@@ -123,7 +121,6 @@ router.post(
123
121
  */
124
122
  router.get(
125
123
  "/:id",
126
- setTenant,
127
124
  isAdmin,
128
125
  error_catcher(async (req, res) => {
129
126
  const { id } = req.params;
package/routes/delete.js CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  const Router = require("express-promise-router");
8
8
 
9
- const { setTenant, loggedIn, error_catcher } = require("./utils.js");
9
+ const { loggedIn, error_catcher } = require("./utils.js");
10
10
  const Table = require("@saltcorn/data/models/table");
11
11
 
12
12
  /**
@@ -29,7 +29,6 @@ module.exports = router;
29
29
  */
30
30
  router.post(
31
31
  "/:name/:id",
32
- setTenant,
33
32
  error_catcher(async (req, res) => {
34
33
  const { name, id } = req.params;
35
34
  const { redirect } = req.query;
package/routes/edit.js CHANGED
@@ -9,7 +9,7 @@ const Router = require("express-promise-router");
9
9
  const Field = require("@saltcorn/data/models/field");
10
10
  const File = require("@saltcorn/data/models/file");
11
11
  const Form = require("@saltcorn/data/models/form");
12
- const { setTenant, loggedIn, error_catcher } = require("./utils.js");
12
+ const { loggedIn, error_catcher } = require("./utils.js");
13
13
  const Table = require("@saltcorn/data/models/table");
14
14
  const pluralize = require("pluralize");
15
15
 
@@ -33,7 +33,6 @@ module.exports = router;
33
33
  */
34
34
  router.post(
35
35
  "/toggle/:name/:id/:field_name",
36
- setTenant,
37
36
  error_catcher(async (req, res) => {
38
37
  const { name, id, field_name } = req.params;
39
38
  const { redirect } = req.query;
@@ -5,12 +5,7 @@
5
5
  * @subcategory routes
6
6
  */
7
7
  const Router = require("express-promise-router");
8
- const {
9
- isAdmin,
10
- setTenant,
11
- error_catcher,
12
- get_base_url,
13
- } = require("./utils.js");
8
+ const { isAdmin, error_catcher, get_base_url } = require("./utils.js");
14
9
  const { getState } = require("@saltcorn/data/db/state");
15
10
  const Trigger = require("@saltcorn/data/models/trigger");
16
11
 
@@ -52,7 +47,7 @@ const { send_events_page } = require("../markup/admin.js");
52
47
  const EventLog = require("@saltcorn/data/models/eventlog");
53
48
 
54
49
  /**
55
- * @param {object} req
50
+ * @param {object} req
56
51
  * @returns {Promise<Form>}
57
52
  */
58
53
  const logSettingsForm = async (req) => {
@@ -101,7 +96,6 @@ const logSettingsForm = async (req) => {
101
96
  */
102
97
  router.get(
103
98
  "/settings",
104
- setTenant,
105
99
  isAdmin,
106
100
  error_catcher(async (req, res) => {
107
101
  const form = await logSettingsForm(req);
@@ -128,7 +122,6 @@ router.get(
128
122
  */
129
123
  router.get(
130
124
  "/custom",
131
- setTenant,
132
125
  isAdmin,
133
126
  error_catcher(async (req, res) => {
134
127
  const cevs = getState().getConfig("custom_events", []);
@@ -202,7 +195,6 @@ const customEventForm = () =>
202
195
  */
203
196
  router.get(
204
197
  "/custom/new",
205
- setTenant,
206
198
  isAdmin,
207
199
  error_catcher(async (req, res) => {
208
200
  const form = customEventForm();
@@ -228,7 +220,6 @@ router.get(
228
220
  */
229
221
  router.post(
230
222
  "/custom/new",
231
- setTenant,
232
223
  isAdmin,
233
224
  error_catcher(async (req, res) => {
234
225
  const form = customEventForm();
@@ -264,7 +255,6 @@ router.post(
264
255
  */
265
256
  router.post(
266
257
  "/custom/delete/:name",
267
- setTenant,
268
258
  isAdmin,
269
259
  error_catcher(async (req, res) => {
270
260
  const { name } = req.params;
@@ -288,7 +278,6 @@ router.post(
288
278
  */
289
279
  router.post(
290
280
  "/settings",
291
- setTenant,
292
281
  isAdmin,
293
282
  error_catcher(async (req, res) => {
294
283
  const form = await logSettingsForm(req);
@@ -321,7 +310,6 @@ router.post(
321
310
  */
322
311
  router.get(
323
312
  "/",
324
- setTenant,
325
313
  isAdmin,
326
314
  error_catcher(async (req, res) => {
327
315
  const state = req.query,
@@ -377,7 +365,6 @@ router.get(
377
365
  */
378
366
  router.get(
379
367
  "/:id",
380
- setTenant,
381
368
  isAdmin,
382
369
  error_catcher(async (req, res) => {
383
370
  const { id } = req.params;