base router and permissions
This commit is contained in:
parent
7883bb7d7f
commit
0684605093
11 changed files with 196 additions and 12 deletions
|
@ -2,6 +2,7 @@ import express from "express";
|
||||||
import PermissionHelper from "../../helpers/permissionHelper";
|
import PermissionHelper from "../../helpers/permissionHelper";
|
||||||
import preventWebapiAccess from "../../middleware/preventWebApiAccess";
|
import preventWebapiAccess from "../../middleware/preventWebApiAccess";
|
||||||
|
|
||||||
|
/** configuration */
|
||||||
import award from "./configuration/award";
|
import award from "./configuration/award";
|
||||||
import communicationType from "./configuration/communicationType";
|
import communicationType from "./configuration/communicationType";
|
||||||
import executivePosition from "./configuration/executivePosition";
|
import executivePosition from "./configuration/executivePosition";
|
||||||
|
@ -14,6 +15,7 @@ import template from "./configuration/template";
|
||||||
import templateUsage from "./configuration/templateUsage";
|
import templateUsage from "./configuration/templateUsage";
|
||||||
import newsletterConfig from "./configuration/newsletterConfig";
|
import newsletterConfig from "./configuration/newsletterConfig";
|
||||||
|
|
||||||
|
/** club */
|
||||||
import member from "./club/member";
|
import member from "./club/member";
|
||||||
import protocol from "./club/protocol";
|
import protocol from "./club/protocol";
|
||||||
import calendar from "./club/calendar";
|
import calendar from "./club/calendar";
|
||||||
|
@ -21,6 +23,7 @@ import queryBuilder from "./club/queryBuilder";
|
||||||
import newsletter from "./club/newsletter";
|
import newsletter from "./club/newsletter";
|
||||||
import listprint from "./club/listprint";
|
import listprint from "./club/listprint";
|
||||||
|
|
||||||
|
/** management */
|
||||||
import role from "./management/role";
|
import role from "./management/role";
|
||||||
import user from "./management/user";
|
import user from "./management/user";
|
||||||
import invite from "./management/invite";
|
import invite from "./management/invite";
|
||||||
|
@ -28,8 +31,19 @@ import api from "./management/webapi";
|
||||||
import backup from "./management/backup";
|
import backup from "./management/backup";
|
||||||
import setting from "./management/setting";
|
import setting from "./management/setting";
|
||||||
|
|
||||||
|
/** unit */
|
||||||
|
import equipment from "./unit/equipment";
|
||||||
|
import equipmentType from "./unit/equipmentType";
|
||||||
|
import vehicle from "./unit/vehicle";
|
||||||
|
import vehicleType from "./unit/vehicleType";
|
||||||
|
import wearable from "./unit/wearable";
|
||||||
|
import wearableType from "./unit/wearableType";
|
||||||
|
import inspection from "./unit/inspection";
|
||||||
|
import inspectionPlan from "./unit/inspectionPlan";
|
||||||
|
|
||||||
var router = express.Router({ mergeParams: true });
|
var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
|
/** configuration */
|
||||||
router.use(
|
router.use(
|
||||||
"/award",
|
"/award",
|
||||||
PermissionHelper.passCheckSomeMiddleware([
|
PermissionHelper.passCheckSomeMiddleware([
|
||||||
|
@ -112,6 +126,7 @@ router.use(
|
||||||
newsletterConfig
|
newsletterConfig
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/** club */
|
||||||
router.use("/member", PermissionHelper.passCheckMiddleware("read", "club", "member"), member);
|
router.use("/member", PermissionHelper.passCheckMiddleware("read", "club", "member"), member);
|
||||||
router.use(
|
router.use(
|
||||||
"/protocol",
|
"/protocol",
|
||||||
|
@ -143,6 +158,7 @@ router.use(
|
||||||
);
|
);
|
||||||
router.use("/listprint", PermissionHelper.passCheckMiddleware("read", "club", "listprint"), listprint);
|
router.use("/listprint", PermissionHelper.passCheckMiddleware("read", "club", "listprint"), listprint);
|
||||||
|
|
||||||
|
/** management */
|
||||||
router.use("/role", PermissionHelper.passCheckMiddleware("read", "management", "role"), role);
|
router.use("/role", PermissionHelper.passCheckMiddleware("read", "management", "role"), role);
|
||||||
router.use(
|
router.use(
|
||||||
"/user",
|
"/user",
|
||||||
|
@ -162,4 +178,42 @@ router.use(
|
||||||
);
|
);
|
||||||
router.use("/setting", PermissionHelper.passCheckMiddleware("read", "management", "setting"), setting);
|
router.use("/setting", PermissionHelper.passCheckMiddleware("read", "management", "setting"), setting);
|
||||||
|
|
||||||
|
/** unit */
|
||||||
|
router.use("/equipment", PermissionHelper.passCheckMiddleware("read", "unit", "equipment"), equipment);
|
||||||
|
router.use(
|
||||||
|
"/equipmenttype",
|
||||||
|
PermissionHelper.passCheckSomeMiddleware([
|
||||||
|
{ requiredPermission: "read", section: "unit", module: "equipment_type" },
|
||||||
|
{ requiredPermission: "read", section: "unit", module: "equipment" },
|
||||||
|
]),
|
||||||
|
equipmentType
|
||||||
|
);
|
||||||
|
router.use("/vehicle", PermissionHelper.passCheckMiddleware("read", "unit", "vehicle"), vehicle);
|
||||||
|
router.use(
|
||||||
|
"/vehicletype",
|
||||||
|
PermissionHelper.passCheckSomeMiddleware([
|
||||||
|
{ requiredPermission: "read", section: "unit", module: "vehicle_type" },
|
||||||
|
{ requiredPermission: "read", section: "unit", module: "vehicle" },
|
||||||
|
]),
|
||||||
|
vehicleType
|
||||||
|
);
|
||||||
|
router.use("/wearable", PermissionHelper.passCheckMiddleware("read", "unit", "wearable"), wearable);
|
||||||
|
router.use(
|
||||||
|
"/wearabletype",
|
||||||
|
PermissionHelper.passCheckSomeMiddleware([
|
||||||
|
{ requiredPermission: "read", section: "unit", module: "wearable_type" },
|
||||||
|
{ requiredPermission: "read", section: "unit", module: "wearable" },
|
||||||
|
]),
|
||||||
|
wearableType
|
||||||
|
);
|
||||||
|
router.use("/inspection", PermissionHelper.passCheckMiddleware("read", "unit", "inspection"), inspection);
|
||||||
|
router.use(
|
||||||
|
"/inspectionplan",
|
||||||
|
PermissionHelper.passCheckSomeMiddleware([
|
||||||
|
{ requiredPermission: "read", section: "unit", module: "inspection_plan" },
|
||||||
|
{ requiredPermission: "read", section: "unit", module: "inspection" },
|
||||||
|
]),
|
||||||
|
inspectionPlan
|
||||||
|
);
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|
10
src/routes/admin/unit/equipment.ts
Normal file
10
src/routes/admin/unit/equipment.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import express, { Request, Response } from "express";
|
||||||
|
import PermissionHelper from "../../../helpers/permissionHelper";
|
||||||
|
|
||||||
|
var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
|
router.get("/", async (req: Request, res: Response) => {
|
||||||
|
res.send("TODO");
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
10
src/routes/admin/unit/equipmentType.ts
Normal file
10
src/routes/admin/unit/equipmentType.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import express, { Request, Response } from "express";
|
||||||
|
import PermissionHelper from "../../../helpers/permissionHelper";
|
||||||
|
|
||||||
|
var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
|
router.get("/", async (req: Request, res: Response) => {
|
||||||
|
res.send("TODO");
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
10
src/routes/admin/unit/inspection.ts
Normal file
10
src/routes/admin/unit/inspection.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import express, { Request, Response } from "express";
|
||||||
|
import PermissionHelper from "../../../helpers/permissionHelper";
|
||||||
|
|
||||||
|
var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
|
router.get("/", async (req: Request, res: Response) => {
|
||||||
|
res.send("TODO");
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
10
src/routes/admin/unit/inspectionPlan.ts
Normal file
10
src/routes/admin/unit/inspectionPlan.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import express, { Request, Response } from "express";
|
||||||
|
import PermissionHelper from "../../../helpers/permissionHelper";
|
||||||
|
|
||||||
|
var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
|
router.get("/", async (req: Request, res: Response) => {
|
||||||
|
res.send("TODO");
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
10
src/routes/admin/unit/vehicle.ts
Normal file
10
src/routes/admin/unit/vehicle.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import express, { Request, Response } from "express";
|
||||||
|
import PermissionHelper from "../../../helpers/permissionHelper";
|
||||||
|
|
||||||
|
var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
|
router.get("/", async (req: Request, res: Response) => {
|
||||||
|
res.send("TODO");
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
10
src/routes/admin/unit/vehicleType.ts
Normal file
10
src/routes/admin/unit/vehicleType.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import express, { Request, Response } from "express";
|
||||||
|
import PermissionHelper from "../../../helpers/permissionHelper";
|
||||||
|
|
||||||
|
var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
|
router.get("/", async (req: Request, res: Response) => {
|
||||||
|
res.send("TODO");
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
10
src/routes/admin/unit/wearable.ts
Normal file
10
src/routes/admin/unit/wearable.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import express, { Request, Response } from "express";
|
||||||
|
import PermissionHelper from "../../../helpers/permissionHelper";
|
||||||
|
|
||||||
|
var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
|
router.get("/", async (req: Request, res: Response) => {
|
||||||
|
res.send("TODO");
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
10
src/routes/admin/unit/wearableType.ts
Normal file
10
src/routes/admin/unit/wearableType.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import express, { Request, Response } from "express";
|
||||||
|
import PermissionHelper from "../../../helpers/permissionHelper";
|
||||||
|
|
||||||
|
var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
|
router.get("/", async (req: Request, res: Response) => {
|
||||||
|
res.send("TODO");
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
|
@ -14,6 +14,10 @@ router.get("/calendar", async (req, res) => {
|
||||||
await getCalendarItemsByTypes(req, res);
|
await getCalendarItemsByTypes(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.post("/reportdamage", async (req, res) => {
|
||||||
|
res.send("TODO");
|
||||||
|
});
|
||||||
|
|
||||||
router.get("/configuration", async (req, res) => {
|
router.get("/configuration", async (req, res) => {
|
||||||
await getApplicationConfig(req, res);
|
await getApplicationConfig(req, res);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,27 +1,43 @@
|
||||||
export type PermissionSection = "club" | "configuration" | "management";
|
export type PermissionSection = "club" | "unit" | "configuration" | "management";
|
||||||
|
|
||||||
export type PermissionModule =
|
export type PermissionModule =
|
||||||
|
// club
|
||||||
| "member"
|
| "member"
|
||||||
| "calendar"
|
| "calendar"
|
||||||
| "newsletter"
|
| "newsletter"
|
||||||
| "newsletter_config"
|
|
||||||
| "protocol"
|
| "protocol"
|
||||||
|
| "query"
|
||||||
| "listprint"
|
| "listprint"
|
||||||
|
// unit
|
||||||
|
| "equipment"
|
||||||
|
| "equipment_type"
|
||||||
|
| "vehicle"
|
||||||
|
| "vehicle_type"
|
||||||
|
| "wearable"
|
||||||
|
| "wearable_type"
|
||||||
|
| "inspection"
|
||||||
|
| "inspection_plan"
|
||||||
|
| "respiratory_gear"
|
||||||
|
| "respiratory_wearer"
|
||||||
|
| "respiratory_mission"
|
||||||
|
| "damage_report"
|
||||||
|
// configuration
|
||||||
| "qualification"
|
| "qualification"
|
||||||
| "award"
|
| "award"
|
||||||
| "executive_position"
|
| "executive_position"
|
||||||
| "communication_type"
|
| "communication_type"
|
||||||
| "membership_status"
|
| "membership_status"
|
||||||
|
| "newsletter_config"
|
||||||
| "salutation"
|
| "salutation"
|
||||||
| "calendar_type"
|
| "calendar_type"
|
||||||
| "user"
|
|
||||||
| "role"
|
|
||||||
| "webapi"
|
|
||||||
| "query"
|
|
||||||
| "query_store"
|
| "query_store"
|
||||||
| "template"
|
| "template"
|
||||||
| "template_usage"
|
| "template_usage"
|
||||||
| "backup"
|
| "backup"
|
||||||
|
// management
|
||||||
|
| "user"
|
||||||
|
| "role"
|
||||||
|
| "webapi"
|
||||||
| "setting";
|
| "setting";
|
||||||
|
|
||||||
export type PermissionType = "read" | "create" | "update" | "delete";
|
export type PermissionType = "read" | "create" | "update" | "delete";
|
||||||
|
@ -56,34 +72,64 @@ export type SectionsAndModulesObject = {
|
||||||
}>;
|
}>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const permissionSections: Array<PermissionSection> = ["club", "configuration", "management"];
|
export const permissionSections: Array<PermissionSection> = ["club", "unit", "configuration", "management"];
|
||||||
export const permissionModules: Array<PermissionModule> = [
|
export const permissionModules: Array<PermissionModule> = [
|
||||||
|
// club
|
||||||
"member",
|
"member",
|
||||||
"calendar",
|
"calendar",
|
||||||
"newsletter",
|
"newsletter",
|
||||||
"newsletter_config",
|
|
||||||
"protocol",
|
"protocol",
|
||||||
|
"query",
|
||||||
"listprint",
|
"listprint",
|
||||||
|
// unit
|
||||||
|
"equipment",
|
||||||
|
"equipment_type",
|
||||||
|
"vehicle",
|
||||||
|
"vehicle_type",
|
||||||
|
"wearable",
|
||||||
|
"wearable_type",
|
||||||
|
"inspection",
|
||||||
|
"inspection_plan",
|
||||||
|
"respiratory_gear",
|
||||||
|
"respiratory_wearer",
|
||||||
|
"respiratory_mission",
|
||||||
|
"damage_report",
|
||||||
|
// configuration
|
||||||
"qualification",
|
"qualification",
|
||||||
"award",
|
"award",
|
||||||
"executive_position",
|
"executive_position",
|
||||||
"communication_type",
|
"communication_type",
|
||||||
"membership_status",
|
"membership_status",
|
||||||
|
"newsletter_config",
|
||||||
"salutation",
|
"salutation",
|
||||||
"calendar_type",
|
"calendar_type",
|
||||||
"user",
|
|
||||||
"role",
|
|
||||||
"webapi",
|
|
||||||
"query",
|
|
||||||
"query_store",
|
"query_store",
|
||||||
"template",
|
"template",
|
||||||
"template_usage",
|
"template_usage",
|
||||||
"backup",
|
"backup",
|
||||||
|
// management
|
||||||
|
"user",
|
||||||
|
"role",
|
||||||
|
"webapi",
|
||||||
"setting",
|
"setting",
|
||||||
];
|
];
|
||||||
export const permissionTypes: Array<PermissionType> = ["read", "create", "update", "delete"];
|
export const permissionTypes: Array<PermissionType> = ["read", "create", "update", "delete"];
|
||||||
export const sectionsAndModules: SectionsAndModulesObject = {
|
export const sectionsAndModules: SectionsAndModulesObject = {
|
||||||
club: ["member", "calendar", "newsletter", "protocol", "query", "listprint"],
|
club: ["member", "calendar", "newsletter", "protocol", "query", "listprint"],
|
||||||
|
unit: [
|
||||||
|
"equipment",
|
||||||
|
"equipment_type",
|
||||||
|
"vehicle",
|
||||||
|
"vehicle_type",
|
||||||
|
"wearable",
|
||||||
|
"wearable_type",
|
||||||
|
"inspection",
|
||||||
|
"inspection_plan",
|
||||||
|
"respiratory_gear",
|
||||||
|
"respiratory_wearer",
|
||||||
|
"respiratory_mission",
|
||||||
|
"damage_report",
|
||||||
|
],
|
||||||
configuration: [
|
configuration: [
|
||||||
"qualification",
|
"qualification",
|
||||||
"award",
|
"award",
|
||||||
|
|
Loading…
Add table
Reference in a new issue