@saltcorn/server 0.9.5-beta.27 → 0.9.5-beta.28
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/locales/en.json +3 -1
- package/package.json +9 -9
- package/routes/admin.js +1 -0
- package/routes/page.js +8 -2
- package/routes/tenant.js +1 -0
- package/routes/utils.js +18 -2
- package/routes/view.js +15 -3
package/locales/en.json
CHANGED
|
@@ -1414,5 +1414,7 @@
|
|
|
1414
1414
|
"Do not wrap response in a success object": "Do not wrap response in a success object",
|
|
1415
1415
|
"Use table description instead of name as header": "Use table description instead of name as header",
|
|
1416
1416
|
"Description header": "Description header",
|
|
1417
|
-
"Lazy load views": "Lazy load views"
|
|
1417
|
+
"Lazy load views": "Lazy load views",
|
|
1418
|
+
"Log IP address": "Log IP address",
|
|
1419
|
+
"Record the request IP address in log messages": "Record the request IP address in log messages"
|
|
1418
1420
|
}
|
package/package.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saltcorn/server",
|
|
3
|
-
"version": "0.9.5-beta.
|
|
3
|
+
"version": "0.9.5-beta.28",
|
|
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
9
|
"@aws-sdk/client-s3": "^3.451.0",
|
|
10
|
-
"@saltcorn/base-plugin": "0.9.5-beta.
|
|
11
|
-
"@saltcorn/builder": "0.9.5-beta.
|
|
12
|
-
"@saltcorn/data": "0.9.5-beta.
|
|
13
|
-
"@saltcorn/admin-models": "0.9.5-beta.
|
|
14
|
-
"@saltcorn/filemanager": "0.9.5-beta.
|
|
15
|
-
"@saltcorn/markup": "0.9.5-beta.
|
|
16
|
-
"@saltcorn/plugins-loader": "0.9.5-beta.
|
|
17
|
-
"@saltcorn/sbadmin2": "0.9.5-beta.
|
|
10
|
+
"@saltcorn/base-plugin": "0.9.5-beta.28",
|
|
11
|
+
"@saltcorn/builder": "0.9.5-beta.28",
|
|
12
|
+
"@saltcorn/data": "0.9.5-beta.28",
|
|
13
|
+
"@saltcorn/admin-models": "0.9.5-beta.28",
|
|
14
|
+
"@saltcorn/filemanager": "0.9.5-beta.28",
|
|
15
|
+
"@saltcorn/markup": "0.9.5-beta.28",
|
|
16
|
+
"@saltcorn/plugins-loader": "0.9.5-beta.28",
|
|
17
|
+
"@saltcorn/sbadmin2": "0.9.5-beta.28",
|
|
18
18
|
"@socket.io/cluster-adapter": "^0.2.1",
|
|
19
19
|
"@socket.io/sticky": "^1.0.1",
|
|
20
20
|
"adm-zip": "0.5.10",
|
package/routes/admin.js
CHANGED
package/routes/page.js
CHANGED
|
@@ -135,7 +135,13 @@ router.get(
|
|
|
135
135
|
"/:pagename",
|
|
136
136
|
error_catcher(async (req, res) => {
|
|
137
137
|
const { pagename } = req.params;
|
|
138
|
-
|
|
138
|
+
const state = getState();
|
|
139
|
+
state.log(
|
|
140
|
+
3,
|
|
141
|
+
`Route /page/${pagename} user=${req.user?.id}${
|
|
142
|
+
state.getConfig("log_ip_address", false) ? ` IP=${req.ip}` : ""
|
|
143
|
+
}`
|
|
144
|
+
);
|
|
139
145
|
const tic = new Date();
|
|
140
146
|
const { page, pageGroup } = findPageOrGroup(pagename);
|
|
141
147
|
if (page) await runPage(page, req, res, tic);
|
|
@@ -144,7 +150,7 @@ router.get(
|
|
|
144
150
|
if ((page || pageGroup) && !req.user) {
|
|
145
151
|
res.redirect(`/auth/login?dest=${encodeURIComponent(req.originalUrl)}`);
|
|
146
152
|
} else {
|
|
147
|
-
|
|
153
|
+
state.log(2, `Page ${pagename} not found or not authorized`);
|
|
148
154
|
res
|
|
149
155
|
.status(404)
|
|
150
156
|
.sendWrap(
|
package/routes/tenant.js
CHANGED
package/routes/utils.js
CHANGED
|
@@ -203,7 +203,15 @@ const setTenant = (req, res, next) => {
|
|
|
203
203
|
} else {
|
|
204
204
|
db.runWithTenant(other_domain, () => {
|
|
205
205
|
setLanguage(req, res, state);
|
|
206
|
-
state.
|
|
206
|
+
if (state.logLevel >= 5)
|
|
207
|
+
state.log(
|
|
208
|
+
5,
|
|
209
|
+
`${req.method} ${req.originalUrl}${
|
|
210
|
+
state.getConfig("log_ip_address", false)
|
|
211
|
+
? ` IP=${req.ip}`
|
|
212
|
+
: ""
|
|
213
|
+
}`
|
|
214
|
+
);
|
|
207
215
|
next();
|
|
208
216
|
});
|
|
209
217
|
}
|
|
@@ -216,7 +224,15 @@ const setTenant = (req, res, next) => {
|
|
|
216
224
|
} else {
|
|
217
225
|
db.runWithTenant(ten, () => {
|
|
218
226
|
setLanguage(req, res, state);
|
|
219
|
-
state.
|
|
227
|
+
if (state.logLevel >= 5)
|
|
228
|
+
state.log(
|
|
229
|
+
5,
|
|
230
|
+
`${req.method} ${req.originalUrl}${
|
|
231
|
+
state.getConfig("log_ip_address", false)
|
|
232
|
+
? ` IP=${req.ip}`
|
|
233
|
+
: ""
|
|
234
|
+
}`
|
|
235
|
+
);
|
|
220
236
|
next();
|
|
221
237
|
});
|
|
222
238
|
}
|
package/routes/view.js
CHANGED
|
@@ -45,7 +45,12 @@ router.get(
|
|
|
45
45
|
const view = await View.findOne({ name: viewname });
|
|
46
46
|
const role = req.user && req.user.id ? req.user.role_id : 100;
|
|
47
47
|
const state = getState();
|
|
48
|
-
state.log(
|
|
48
|
+
state.log(
|
|
49
|
+
3,
|
|
50
|
+
`Route /view/${viewname} user=${req.user?.id}${
|
|
51
|
+
state.getConfig("log_ip_address", false) ? ` IP=${req.ip}` : ""
|
|
52
|
+
}`
|
|
53
|
+
);
|
|
49
54
|
if (!view) {
|
|
50
55
|
req.flash("danger", req.__(`No such view: %s`, text(viewname)));
|
|
51
56
|
state.log(2, `View ${viewname} not found`);
|
|
@@ -207,7 +212,9 @@ router.post(
|
|
|
207
212
|
const state = getState();
|
|
208
213
|
state.log(
|
|
209
214
|
3,
|
|
210
|
-
`Route /view/${viewname} viewroute ${route} user=${req.user?.id}
|
|
215
|
+
`Route /view/${viewname} viewroute ${route} user=${req.user?.id}${
|
|
216
|
+
state.getConfig("log_ip_address", false) ? ` IP=${req.ip}` : ""
|
|
217
|
+
}`
|
|
211
218
|
);
|
|
212
219
|
|
|
213
220
|
const view = await View.findOne({ name: viewname });
|
|
@@ -240,7 +247,12 @@ router.post(
|
|
|
240
247
|
const role = req.user && req.user.id ? req.user.role_id : 100;
|
|
241
248
|
const query = { ...req.query };
|
|
242
249
|
const state = getState();
|
|
243
|
-
state.log(
|
|
250
|
+
state.log(
|
|
251
|
+
3,
|
|
252
|
+
`Route /view/${viewname} POST user=${req.user?.id}${
|
|
253
|
+
state.getConfig("log_ip_address", false) ? ` IP=${req.ip}` : ""
|
|
254
|
+
}`
|
|
255
|
+
);
|
|
244
256
|
const view = await View.findOne({ name: viewname });
|
|
245
257
|
if (!view) {
|
|
246
258
|
req.flash("danger", req.__(`No such view: %s`, text(viewname)));
|