ff-admin-server/src/routes/admin/index.ts

288 lines
10 KiB
TypeScript
Raw Normal View History

2024-09-01 14:55:05 +02:00
import express from "express";
import PermissionHelper from "../../helpers/permissionHelper";
2025-02-02 16:23:44 +01:00
import preventWebapiAccess from "../../middleware/preventWebApiAccess";
2024-09-01 14:55:05 +02:00
2025-05-29 10:52:05 +02:00
/** configuration */
2025-02-15 10:59:54 +01:00
import award from "./configuration/award";
import communicationType from "./configuration/communicationType";
import executivePosition from "./configuration/executivePosition";
import membershipStatus from "./configuration/membershipStatus";
import qualification from "./configuration/qualification";
2025-06-03 15:20:46 +02:00
import education from "./configuration/education";
2025-02-15 10:59:54 +01:00
import salutation from "./configuration/salutation";
import calendarType from "./configuration/calendarType";
import queryStore from "./configuration/queryStore";
import template from "./configuration/template";
import templateUsage from "./configuration/templateUsage";
import newsletterConfig from "./configuration/newsletterConfig";
2024-09-04 14:24:30 +02:00
2025-05-29 10:52:05 +02:00
/** club */
2025-01-05 14:14:00 +01:00
import member from "./club/member";
import protocol from "./club/protocol";
import calendar from "./club/calendar";
import queryBuilder from "./club/queryBuilder";
import newsletter from "./club/newsletter";
import listprint from "./club/listprint";
2024-10-27 11:47:13 +01:00
2025-05-29 10:52:05 +02:00
/** management */
2025-02-15 10:59:54 +01:00
import role from "./management/role";
import user from "./management/user";
import invite from "./management/invite";
import api from "./management/webapi";
import backup from "./management/backup";
2025-04-20 16:15:27 +02:00
import setting from "./management/setting";
2024-09-01 14:55:05 +02:00
2025-05-29 10:52:05 +02:00
/** 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";
import damageReport from "./unit/damageReport";
2025-06-13 11:31:34 +02:00
import maintenance from "./unit/maintenance";
2025-05-29 10:52:05 +02:00
2024-09-01 14:55:05 +02:00
var router = express.Router({ mergeParams: true });
2025-05-29 10:52:05 +02:00
/** configuration */
router.use(
"/award",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "configuration", module: "award" },
{ requiredPermission: "read", section: "club", module: "member" },
]),
award
);
2024-09-04 14:24:30 +02:00
router.use(
"/communicationtype",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "configuration", module: "communication_type" },
{ requiredPermission: "read", section: "club", module: "member" },
]),
2024-09-04 14:24:30 +02:00
communicationType
);
router.use(
"/executiveposition",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "configuration", module: "executive_position" },
{ requiredPermission: "read", section: "club", module: "member" },
]),
2024-09-04 14:24:30 +02:00
executivePosition
);
router.use(
"/membershipstatus",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "configuration", module: "membership_status" },
{ requiredPermission: "read", section: "club", module: "member" },
]),
2024-09-04 14:24:30 +02:00
membershipStatus
);
router.use(
"/qualification",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "configuration", module: "qualification" },
{ requiredPermission: "read", section: "club", module: "member" },
]),
qualification
);
2025-06-03 15:20:46 +02:00
router.use(
"/education",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "configuration", module: "education" },
{ requiredPermission: "read", section: "club", module: "member" },
]),
education
);
router.use(
"/salutation",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "configuration", module: "salutation" },
{ requiredPermission: "read", section: "club", module: "member" },
]),
salutation
);
router.use(
"/calendartype",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "configuration", module: "calendar_type" },
{ requiredPermission: "read", section: "club", module: "calendar" },
]),
calendarType
);
router.use(
"/querystore",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "configuration", module: "query_store" },
{ requiredPermission: "read", section: "club", module: "listprint" },
]),
queryStore
);
2025-02-15 11:16:38 +01:00
router.use("/template", PermissionHelper.passCheckMiddleware("read", "configuration", "template"), template);
router.use(
"/templateusage",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "configuration", module: "template_usage" },
{ requiredPermission: "read", section: "configuration", module: "template" },
]),
templateUsage
);
2024-12-26 11:08:48 +01:00
router.use(
"/newsletterconfig",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "configuration", module: "newsletter_config" },
{ requiredPermission: "read", section: "configuration", module: "communication_type" },
]),
2024-12-26 11:08:48 +01:00
newsletterConfig
);
2024-09-04 14:24:30 +02:00
2025-05-29 10:52:05 +02:00
/** club */
2024-09-16 12:37:06 +02:00
router.use("/member", PermissionHelper.passCheckMiddleware("read", "club", "member"), member);
router.use(
"/protocol",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "club", module: "protocol" },
{ requiredPermission: "read", section: "club", module: "member" },
]),
protocol
);
2024-10-27 11:47:13 +01:00
router.use("/calendar", PermissionHelper.passCheckMiddleware("read", "club", "calendar"), calendar);
router.use(
"/querybuilder",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "club", module: "query" },
{ requiredPermission: "read", section: "configuration", module: "query_store" },
]),
queryBuilder
);
router.use(
"/newsletter",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "club", module: "newsletter" },
{ requiredPermission: "read", section: "club", module: "member" },
{ requiredPermission: "read", section: "club", module: "calendar" },
{ requiredPermission: "read", section: "club", module: "query" },
{ requiredPermission: "read", section: "configuration", module: "query_store" },
]),
newsletter
);
router.use("/listprint", PermissionHelper.passCheckMiddleware("read", "club", "listprint"), listprint);
2024-10-27 11:47:13 +01:00
2025-05-29 10:52:05 +02:00
/** management */
2025-02-15 11:16:38 +01:00
router.use("/role", PermissionHelper.passCheckMiddleware("read", "management", "role"), role);
router.use(
"/user",
PermissionHelper.passCheckSomeMiddleware([
2025-05-07 09:05:36 +02:00
{ requiredPermission: "read", section: "management", module: "user" },
{ requiredPermission: "read", section: "management", module: "role" },
]),
user
);
2025-02-15 11:16:38 +01:00
router.use("/invite", PermissionHelper.passCheckMiddleware("read", "management", "user"), invite);
router.use("/webapi", preventWebapiAccess, PermissionHelper.passCheckMiddleware("read", "management", "webapi"), api);
router.use(
"/backup",
preventWebapiAccess,
PermissionHelper.passCheckMiddleware("read", "management", "backup"),
backup
);
2025-04-20 16:15:27 +02:00
router.use("/setting", PermissionHelper.passCheckMiddleware("read", "management", "setting"), setting);
2024-09-01 14:55:05 +02:00
2025-05-29 10:52:05 +02:00
/** unit */
2025-06-13 11:31:34 +02:00
router.use(
"/equipment",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "unit", module: "equipment" },
{ requiredPermission: "read", section: "unit", module: "inspection_plan" },
]),
equipment
);
2025-05-29 10:52:05 +02:00
router.use(
"/equipmenttype",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "unit", module: "equipment_type" },
{ requiredPermission: "read", section: "unit", module: "equipment" },
2025-06-13 11:31:34 +02:00
{ requiredPermission: "read", section: "unit", module: "inspection_plan" },
2025-05-29 10:52:05 +02:00
]),
equipmentType
);
2025-06-13 11:31:34 +02:00
router.use(
"/vehicle",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "unit", module: "vehicle" },
{ requiredPermission: "read", section: "unit", module: "inspection_plan" },
]),
vehicle
);
2025-05-29 10:52:05 +02:00
router.use(
"/vehicletype",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "unit", module: "vehicle_type" },
{ requiredPermission: "read", section: "unit", module: "vehicle" },
2025-06-13 11:31:34 +02:00
{ requiredPermission: "read", section: "unit", module: "inspection_plan" },
2025-05-29 10:52:05 +02:00
]),
vehicleType
);
2025-06-13 11:31:34 +02:00
router.use(
"/wearable",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "unit", module: "wearable" },
{ requiredPermission: "read", section: "unit", module: "inspection_plan" },
]),
wearable
);
2025-05-29 10:52:05 +02:00
router.use(
"/wearabletype",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "unit", module: "wearable_type" },
{ requiredPermission: "read", section: "unit", module: "wearable" },
2025-06-13 11:31:34 +02:00
{ requiredPermission: "read", section: "unit", module: "inspection_plan" },
2025-05-29 10:52:05 +02:00
]),
wearableType
);
2025-06-13 11:31:34 +02:00
router.use(
"/inspection",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "unit", module: "inspection" },
{ requiredPermission: "read", section: "unit", module: "equipment" },
{ requiredPermission: "read", section: "unit", module: "vehicle" },
{ requiredPermission: "read", section: "unit", module: "wearable" },
]),
inspection
);
2025-05-29 10:52:05 +02:00
router.use(
"/inspectionplan",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "unit", module: "inspection_plan" },
{ requiredPermission: "read", section: "unit", module: "inspection" },
2025-06-13 11:31:34 +02:00
{ requiredPermission: "read", section: "unit", module: "equipment_type" },
{ requiredPermission: "read", section: "unit", module: "vehicle_type" },
{ requiredPermission: "read", section: "unit", module: "wearable_type" },
2025-05-29 10:52:05 +02:00
]),
inspectionPlan
);
router.use(
"/damagereport",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "unit", module: "damage_report" },
2025-06-13 11:31:34 +02:00
{ requiredPermission: "read", section: "unit", module: "maintenance" },
{ requiredPermission: "read", section: "unit", module: "equipment" },
{ requiredPermission: "read", section: "unit", module: "vehicle" },
{ requiredPermission: "read", section: "unit", module: "wearable" },
]),
damageReport
);
2025-06-13 11:31:34 +02:00
router.use(
"/mainenance",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "unit", module: "maintenance" },
{ requiredPermission: "read", section: "unit", module: "equipment" },
{ requiredPermission: "read", section: "unit", module: "vehicle" },
{ requiredPermission: "read", section: "unit", module: "wearable" },
]),
maintenance
);
2025-05-29 10:52:05 +02:00
2024-09-01 14:55:05 +02:00
export default router;