adminizer 4.2.0-build.62 → 4.2.0-build.64
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/lib/Adminizer.d.ts +2 -2
- package/lib/Adminizer.js +21 -1
- package/lib/media-manager/Items.js +1 -1
- package/package.json +1 -1
package/lib/Adminizer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Express } from "express";
|
|
1
|
+
import express, { Express } from "express";
|
|
2
2
|
import winston from "winston";
|
|
3
3
|
import EventEmitter from 'events';
|
|
4
4
|
import { AdminpanelConfig } from "../interfaces/adminpanelConfig";
|
|
@@ -34,7 +34,7 @@ export declare class Adminizer {
|
|
|
34
34
|
jwtSecret: string;
|
|
35
35
|
static logger: winston.Logger;
|
|
36
36
|
constructor(ormAdapters: AbstractAdapter[]);
|
|
37
|
-
getMiddleware(): (req:
|
|
37
|
+
getMiddleware(): (req: express.Request, res: express.Response, next: () => void) => void;
|
|
38
38
|
/**
|
|
39
39
|
* Vite middleware
|
|
40
40
|
* @protected
|
package/lib/Adminizer.js
CHANGED
|
@@ -69,14 +69,34 @@ export class Adminizer {
|
|
|
69
69
|
this.ormAdapters = ormAdapters;
|
|
70
70
|
}
|
|
71
71
|
getMiddleware() {
|
|
72
|
-
return (req, res) => {
|
|
72
|
+
return (req, res, next) => {
|
|
73
|
+
// If a routePrefix is configured, only handle requests that match it.
|
|
74
|
+
try {
|
|
75
|
+
const prefix = (this.config && this.config.routePrefix) ? String(this.config.routePrefix) : '';
|
|
76
|
+
const normalizedPrefix = prefix.replace(/\/+/g, '/').replace(/\/+$/g, '');
|
|
77
|
+
if (normalizedPrefix) {
|
|
78
|
+
const url = req.url || req.originalUrl || '';
|
|
79
|
+
if (!(url === normalizedPrefix || url.startsWith(normalizedPrefix + '/'))) {
|
|
80
|
+
// Not an admin route — pass to next middleware
|
|
81
|
+
return typeof next === 'function' ? next() : undefined;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
// If anything goes wrong while checking, fall back to handling the request
|
|
87
|
+
}
|
|
73
88
|
this.app(req, res, (err) => {
|
|
74
89
|
if (err) {
|
|
90
|
+
// eslint-disable-next-line no-console
|
|
75
91
|
console.error("Error in Adminizer", err);
|
|
76
92
|
res.writeHead(500, { 'Content-Type': 'text/plain' });
|
|
77
93
|
res.end('Internal Server Error');
|
|
78
94
|
}
|
|
79
95
|
else {
|
|
96
|
+
// If Adminizer didn't handle the route, let the rest of the stack try
|
|
97
|
+
if (typeof next === 'function') {
|
|
98
|
+
return next();
|
|
99
|
+
}
|
|
80
100
|
res.writeHead(404, { 'Content-Type': 'text/plain' });
|
|
81
101
|
res.end('Route Not Found in Adminizer');
|
|
82
102
|
}
|
|
@@ -181,7 +181,7 @@ export class ImageItem extends File {
|
|
|
181
181
|
let record = await this.adminizer.modelHandler.model.get(this.model)["_findOne"](criteria);
|
|
182
182
|
await beforeDestroy(this.adminizer, criteria);
|
|
183
183
|
// TODO refactor CRUD functions for DataAccessor usage
|
|
184
|
-
await this.adminizer.modelHandler.model.get(this.model)["_destroy"](
|
|
184
|
+
await this.adminizer.modelHandler.model.get(this.model)["_destroy"]({ id: id });
|
|
185
185
|
await deleteFile(record.path);
|
|
186
186
|
// Delete all variants
|
|
187
187
|
if (record.variants.length) {
|