adminizer 4.6.0-build.203 → 4.6.0-build.204
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/helpers/accessRightsHelper.d.ts +1 -0
- package/helpers/accessRightsHelper.js +7 -0
- package/interfaces/adminpanelConfig.d.ts +0 -2
- package/lib/model/ModelHandler.d.ts +9 -0
- package/lib/model/ModelHandler.js +9 -0
- package/package.json +1 -1
- package/system/Router.js +1 -1
- package/system/bindAccessRights.js +1 -22
|
@@ -7,6 +7,7 @@ export declare class AccessRightsHelper {
|
|
|
7
7
|
constructor(adminizer: Adminizer);
|
|
8
8
|
registerToken(accessRightsToken: AccessRightsToken): void;
|
|
9
9
|
registerTokens(accessRightsTokens: AccessRightsToken[]): void;
|
|
10
|
+
registerModelTokens(modelName: string, department?: string): void;
|
|
10
11
|
getTokens(): AccessRightsToken[];
|
|
11
12
|
getTokensByDepartment(department: string): AccessRightsToken[];
|
|
12
13
|
getAllDepartments(): string[];
|
|
@@ -23,6 +23,13 @@ export class AccessRightsHelper {
|
|
|
23
23
|
this.registerToken(token);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
+
registerModelTokens(modelName, department) {
|
|
27
|
+
department = department ?? `Model ${modelName}`;
|
|
28
|
+
this.registerToken({ id: `create-${modelName}-model`, name: "Create", description: "Access to creating record in database", department });
|
|
29
|
+
this.registerToken({ id: `read-${modelName}-model`, name: "Read", description: "Access to reading records in database", department });
|
|
30
|
+
this.registerToken({ id: `update-${modelName}-model`, name: "Update", description: "Access to updating records in database", department });
|
|
31
|
+
this.registerToken({ id: `delete-${modelName}-model`, name: "Delete", description: "Access to deleting records in database", department });
|
|
32
|
+
}
|
|
26
33
|
getTokens() {
|
|
27
34
|
return this._tokens;
|
|
28
35
|
}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { AbstractModel } from "./AbstractModel";
|
|
2
|
+
/**
|
|
3
|
+
* Central registry (service locator) for all AbstractModel instances in the application.
|
|
4
|
+
* A single instance is created in Adminizer and shared across the entire app via `req.adminizer.modelHandler`.
|
|
5
|
+
*
|
|
6
|
+
* Models are registered at startup via `bindModels`, then looked up by name from controllers,
|
|
7
|
+
* services, helpers, and system utilities — without importing each model directly.
|
|
8
|
+
*
|
|
9
|
+
* Lookup is case-insensitive: `"UserAP"`, `"userap"`, and `"USERAP"` all resolve to the same model.
|
|
10
|
+
*/
|
|
2
11
|
export declare class ModelHandler {
|
|
3
12
|
private models;
|
|
4
13
|
add<T>(modelName: string, modelInstance: AbstractModel<T>): void;
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { Adminizer } from "../Adminizer.js";
|
|
2
|
+
/**
|
|
3
|
+
* Central registry (service locator) for all AbstractModel instances in the application.
|
|
4
|
+
* A single instance is created in Adminizer and shared across the entire app via `req.adminizer.modelHandler`.
|
|
5
|
+
*
|
|
6
|
+
* Models are registered at startup via `bindModels`, then looked up by name from controllers,
|
|
7
|
+
* services, helpers, and system utilities — without importing each model directly.
|
|
8
|
+
*
|
|
9
|
+
* Lookup is case-insensitive: `"UserAP"`, `"userap"`, and `"USERAP"` all resolve to the same model.
|
|
10
|
+
*/
|
|
2
11
|
export class ModelHandler {
|
|
3
12
|
models = new Map();
|
|
4
13
|
add(modelName, modelInstance) {
|
package/package.json
CHANGED
package/system/Router.js
CHANGED
|
@@ -194,7 +194,7 @@ export default class Router {
|
|
|
194
194
|
register(`${prefix}/edit/:id`, _edit);
|
|
195
195
|
register(`${prefix}/remove/:id`, _remove);
|
|
196
196
|
}
|
|
197
|
-
else if (typeof modelConfig !== "boolean") {
|
|
197
|
+
else if (modelConfig !== undefined && typeof modelConfig !== "boolean") {
|
|
198
198
|
Adminizer.log.debug(`Adminpanel create CRUD routes for \`${model}\` by ModelConfig`);
|
|
199
199
|
/**
|
|
200
200
|
* Create new record
|
|
@@ -4,28 +4,7 @@ export default async function bindAccessRights(adminizer) {
|
|
|
4
4
|
for (let key of Object.keys(models)) {
|
|
5
5
|
const model = models[key];
|
|
6
6
|
if (typeof model !== "boolean") {
|
|
7
|
-
|
|
8
|
-
let department = `Model ${key}`;
|
|
9
|
-
// create
|
|
10
|
-
adminizer.accessRightsHelper.registerToken({
|
|
11
|
-
id: `create-${modelName}-model`, name: "Create",
|
|
12
|
-
description: "Access to creating record in database", department: department
|
|
13
|
-
});
|
|
14
|
-
// read
|
|
15
|
-
adminizer.accessRightsHelper.registerToken({
|
|
16
|
-
id: `read-${modelName}-model`, name: "Read",
|
|
17
|
-
description: "Access to reading records in database", department: department
|
|
18
|
-
});
|
|
19
|
-
// update
|
|
20
|
-
adminizer.accessRightsHelper.registerToken({
|
|
21
|
-
id: `update-${modelName}-model`, name: "Update",
|
|
22
|
-
description: "Access to updating records in database", department: department
|
|
23
|
-
});
|
|
24
|
-
// delete
|
|
25
|
-
adminizer.accessRightsHelper.registerToken({
|
|
26
|
-
id: `delete-${modelName}-model`, name: "Delete",
|
|
27
|
-
description: "Access to deleting records in database", department: department
|
|
28
|
-
});
|
|
7
|
+
adminizer.accessRightsHelper.registerModelTokens(model.model);
|
|
29
8
|
}
|
|
30
9
|
}
|
|
31
10
|
}
|