patches v1.3.5 #74

Merged
jkeffects merged 10 commits from develop into main 2025-03-12 08:52:49 +00:00
19 changed files with 81 additions and 76 deletions
Showing only changes of commit 357c27861b - Show all commits

View file

@ -21,7 +21,7 @@ export async function getAllTemplateUsages(req: Request, res: Response): Promise
if (!req.isOwner) {
templateUsages = templateUsages.filter((tu) => {
return (
PermissionHelper.can(req.permissions, "update", "settings", tu.scope.split(".")[0] as PermissionModule) ||
PermissionHelper.can(req.permissions, "update", "configuration", tu.scope.split(".")[0] as PermissionModule) ||
PermissionHelper.can(req.permissions, "update", "club", tu.scope.split(".")[0] as PermissionModule)
);
});
@ -66,7 +66,7 @@ export async function updateTemplateUsage(req: Request, res: Response): Promise<
let allowedSettings = PermissionHelper.can(
req.permissions,
"update",
"settings",
"configuration",
req.params.scope as PermissionModule
);
let allowedClub = PermissionHelper.can(req.permissions, "update", "club", req.params.scope as PermissionModule);

View file

@ -20,7 +20,7 @@ router.get("/:id", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "settings", "award"),
PermissionHelper.passCheckMiddleware("create", "configuration", "award"),
async (req: Request, res: Response) => {
await createAward(req, res);
}
@ -28,7 +28,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "settings", "award"),
PermissionHelper.passCheckMiddleware("update", "configuration", "award"),
async (req: Request, res: Response) => {
await updateAward(req, res);
}
@ -36,7 +36,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "settings", "award"),
PermissionHelper.passCheckMiddleware("delete", "configuration", "award"),
async (req: Request, res: Response) => {
await deleteAward(req, res);
}

View file

@ -25,7 +25,7 @@ router.get("/:id", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "settings", "calendar_type"),
PermissionHelper.passCheckMiddleware("create", "configuration", "calendar_type"),
async (req: Request, res: Response) => {
await createCalendarType(req, res);
}
@ -33,7 +33,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "settings", "calendar_type"),
PermissionHelper.passCheckMiddleware("update", "configuration", "calendar_type"),
async (req: Request, res: Response) => {
await updateCalendarType(req, res);
}
@ -41,7 +41,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "settings", "calendar_type"),
PermissionHelper.passCheckMiddleware("delete", "configuration", "calendar_type"),
async (req: Request, res: Response) => {
await deleteCalendarType(req, res);
}

View file

@ -25,7 +25,7 @@ router.get("/:id", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "settings", "communication_type"),
PermissionHelper.passCheckMiddleware("create", "configuration", "communication_type"),
async (req: Request, res: Response) => {
await createCommunicationType(req, res);
}
@ -33,7 +33,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "settings", "communication_type"),
PermissionHelper.passCheckMiddleware("update", "configuration", "communication_type"),
async (req: Request, res: Response) => {
await updateCommunicationType(req, res);
}
@ -41,7 +41,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "settings", "communication_type"),
PermissionHelper.passCheckMiddleware("delete", "configuration", "communication_type"),
async (req: Request, res: Response) => {
await deleteCommunicationType(req, res);
}

View file

@ -20,7 +20,7 @@ router.get("/:id", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "settings", "executive_position"),
PermissionHelper.passCheckMiddleware("create", "configuration", "executive_position"),
async (req: Request, res: Response) => {
await createExecutivePosition(req, res);
}
@ -28,7 +28,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "settings", "executive_position"),
PermissionHelper.passCheckMiddleware("update", "configuration", "executive_position"),
async (req: Request, res: Response) => {
await updateExecutivePosition(req, res);
}
@ -36,7 +36,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "settings", "executive_position"),
PermissionHelper.passCheckMiddleware("delete", "configuration", "executive_position"),
async (req: Request, res: Response) => {
await deleteExecutivePosition(req, res);
}

View file

@ -20,7 +20,7 @@ router.get("/:id", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "settings", "membership_status"),
PermissionHelper.passCheckMiddleware("create", "configuration", "membership_status"),
async (req: Request, res: Response) => {
await createMembershipStatus(req, res);
}
@ -28,7 +28,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "settings", "membership_status"),
PermissionHelper.passCheckMiddleware("update", "configuration", "membership_status"),
async (req: Request, res: Response) => {
await updateMembershipStatus(req, res);
}
@ -36,7 +36,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "settings", "membership_status"),
PermissionHelper.passCheckMiddleware("delete", "configuration", "membership_status"),
async (req: Request, res: Response) => {
await deleteMembershipStatus(req, res);
}

View file

@ -19,7 +19,7 @@ router.get("/:id", async (req: Request, res: Response) => {
router.put(
"/",
PermissionHelper.passCheckMiddleware("create", "settings", "newsletter_config"),
PermissionHelper.passCheckMiddleware("create", "configuration", "newsletter_config"),
async (req: Request, res: Response) => {
await setNewsletterConfig(req, res);
}
@ -27,7 +27,7 @@ router.put(
router.delete(
"/:comTypeId",
PermissionHelper.passCheckMiddleware("create", "settings", "newsletter_config"),
PermissionHelper.passCheckMiddleware("create", "configuration", "newsletter_config"),
async (req: Request, res: Response) => {
await deleteNewsletterConfig(req, res);
}

View file

@ -20,7 +20,7 @@ router.get("/:id", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "settings", "qualification"),
PermissionHelper.passCheckMiddleware("create", "configuration", "qualification"),
async (req: Request, res: Response) => {
await createQualification(req, res);
}
@ -28,7 +28,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "settings", "qualification"),
PermissionHelper.passCheckMiddleware("update", "configuration", "qualification"),
async (req: Request, res: Response) => {
await updateQualification(req, res);
}
@ -36,7 +36,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "settings", "qualification"),
PermissionHelper.passCheckMiddleware("delete", "configuration", "qualification"),
async (req: Request, res: Response) => {
await deleteQualification(req, res);
}

View file

@ -20,7 +20,7 @@ router.get("/:id", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "settings", "query_store"),
PermissionHelper.passCheckMiddleware("create", "configuration", "query_store"),
async (req: Request, res: Response) => {
await createQueryStore(req, res);
}
@ -28,7 +28,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "settings", "query_store"),
PermissionHelper.passCheckMiddleware("update", "configuration", "query_store"),
async (req: Request, res: Response) => {
await updateQueryStore(req, res);
}
@ -36,7 +36,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "settings", "query_store"),
PermissionHelper.passCheckMiddleware("delete", "configuration", "query_store"),
async (req: Request, res: Response) => {
await deleteQueryStore(req, res);
}

View file

@ -20,7 +20,7 @@ router.get("/:id", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "settings", "salutation"),
PermissionHelper.passCheckMiddleware("create", "configuration", "salutation"),
async (req: Request, res: Response) => {
await createSalutation(req, res);
}
@ -28,7 +28,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "settings", "salutation"),
PermissionHelper.passCheckMiddleware("update", "configuration", "salutation"),
async (req: Request, res: Response) => {
await updateSalutation(req, res);
}
@ -36,7 +36,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "settings", "salutation"),
PermissionHelper.passCheckMiddleware("delete", "configuration", "salutation"),
async (req: Request, res: Response) => {
await deleteSalutation(req, res);
}

View file

@ -21,7 +21,7 @@ router.get("/:id", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "settings", "template"),
PermissionHelper.passCheckMiddleware("create", "configuration", "template"),
async (req: Request, res: Response) => {
await createTemplate(req, res);
}
@ -29,7 +29,7 @@ router.post(
router.post(
"/clone",
PermissionHelper.passCheckMiddleware("create", "settings", "template"),
PermissionHelper.passCheckMiddleware("create", "configuration", "template"),
async (req: Request, res: Response) => {
await cloneTemplate(req, res);
}
@ -37,7 +37,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "settings", "template"),
PermissionHelper.passCheckMiddleware("update", "configuration", "template"),
async (req: Request, res: Response) => {
await updateTemplate(req, res);
}
@ -45,7 +45,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "settings", "template"),
PermissionHelper.passCheckMiddleware("delete", "configuration", "template"),
async (req: Request, res: Response) => {
await deleteTemplate(req, res);
}

View file

@ -20,7 +20,7 @@ router.get("/:scope", async (req: Request, res: Response) => {
router.patch(
"/:scope",
PermissionHelper.passCheckMiddleware("update", "settings", "template_usage"),
PermissionHelper.passCheckMiddleware("update", "configuration", "template_usage"),
async (req: Request, res: Response) => {
await updateTemplateUsage(req, res);
}

View file

@ -31,7 +31,7 @@ var router = express.Router({ mergeParams: true });
router.use(
"/award",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "settings", module: "award" },
{ requiredPermissions: "read", section: "configuration", module: "award" },
{ requiredPermissions: "read", section: "club", module: "member" },
]),
award
@ -39,7 +39,7 @@ router.use(
router.use(
"/communicationtype",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "settings", module: "communication_type" },
{ requiredPermissions: "read", section: "configuration", module: "communication_type" },
{ requiredPermissions: "read", section: "club", module: "member" },
]),
communicationType
@ -47,7 +47,7 @@ router.use(
router.use(
"/executiveposition",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "settings", module: "executive_position" },
{ requiredPermissions: "read", section: "configuration", module: "executive_position" },
{ requiredPermissions: "read", section: "club", module: "member" },
]),
executivePosition
@ -55,7 +55,7 @@ router.use(
router.use(
"/membershipstatus",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "settings", module: "membership_status" },
{ requiredPermissions: "read", section: "configuration", module: "membership_status" },
{ requiredPermissions: "read", section: "club", module: "member" },
]),
membershipStatus
@ -63,7 +63,7 @@ router.use(
router.use(
"/qualification",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "settings", module: "qualification" },
{ requiredPermissions: "read", section: "configuration", module: "qualification" },
{ requiredPermissions: "read", section: "club", module: "member" },
]),
qualification
@ -71,7 +71,7 @@ router.use(
router.use(
"/salutation",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "settings", module: "salutation" },
{ requiredPermissions: "read", section: "configuration", module: "salutation" },
{ requiredPermissions: "read", section: "club", module: "member" },
]),
salutation
@ -79,26 +79,26 @@ router.use(
router.use(
"/calendartype",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "settings", module: "calendar_type" },
{ requiredPermissions: "read", section: "configuration", module: "calendar_type" },
{ requiredPermissions: "read", section: "club", module: "calendar" },
]),
calendarType
);
router.use("/querystore", PermissionHelper.passCheckMiddleware("read", "settings", "query_store"), queryStore);
router.use("/template", PermissionHelper.passCheckMiddleware("read", "settings", "template"), template);
router.use("/querystore", PermissionHelper.passCheckMiddleware("read", "configuration", "query_store"), queryStore);
router.use("/template", PermissionHelper.passCheckMiddleware("read", "configuration", "template"), template);
router.use(
"/templateusage",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "settings", module: "template_usage" },
{ requiredPermissions: "read", section: "settings", module: "template" },
{ requiredPermissions: "read", section: "configuration", module: "template_usage" },
{ requiredPermissions: "read", section: "configuration", module: "template" },
]),
templateUsage
);
router.use(
"/newsletterconfig",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "settings", module: "newsletter_config" },
{ requiredPermissions: "read", section: "settings", module: "communication_type" },
{ requiredPermissions: "read", section: "configuration", module: "newsletter_config" },
{ requiredPermissions: "read", section: "configuration", module: "communication_type" },
]),
newsletterConfig
);
@ -117,7 +117,7 @@ router.use(
"/querybuilder",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "club", module: "query" },
{ requiredPermissions: "read", section: "settings", module: "query_store" },
{ requiredPermissions: "read", section: "configuration", module: "query_store" },
]),
queryBuilder
);
@ -128,22 +128,27 @@ router.use(
{ requiredPermissions: "read", section: "club", module: "member" },
{ requiredPermissions: "read", section: "club", module: "calendar" },
{ requiredPermissions: "read", section: "club", module: "query" },
{ requiredPermissions: "read", section: "settings", module: "query_store" },
{ requiredPermissions: "read", section: "configuration", module: "query_store" },
]),
newsletter
);
router.use("/role", PermissionHelper.passCheckMiddleware("read", "user", "role"), role);
router.use("/role", PermissionHelper.passCheckMiddleware("read", "management", "role"), role);
router.use(
"/user",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermissions: "read", section: "user", module: "user" },
{ requiredPermissions: "read", section: "user", module: "role" },
{ requiredPermissions: "read", section: "management", module: "user" },
{ requiredPermissions: "read", section: "management", module: "role" },
]),
user
);
router.use("/invite", PermissionHelper.passCheckMiddleware("read", "user", "user"), invite);
router.use("/webapi", preventWebapiAccess, PermissionHelper.passCheckMiddleware("read", "user", "webapi"), api);
router.use("/backup", preventWebapiAccess, PermissionHelper.passCheckMiddleware("read", "user", "backup"), backup);
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
);
export default router;

View file

@ -54,7 +54,7 @@ router.get("/uploaded/:filename", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "user", "backup"),
PermissionHelper.passCheckMiddleware("create", "management", "backup"),
async (req: Request, res: Response) => {
await createManualBackup(req, res);
}
@ -62,7 +62,7 @@ router.post(
router.post(
"/generated/restore",
PermissionHelper.passCheckMiddleware("admin", "user", "backup"),
PermissionHelper.passCheckMiddleware("admin", "management", "backup"),
async (req: Request, res: Response) => {
await restoreBackupByLocalFile(req, res);
}
@ -70,7 +70,7 @@ router.post(
router.post(
"/uploaded/restore",
PermissionHelper.passCheckMiddleware("admin", "user", "backup"),
PermissionHelper.passCheckMiddleware("admin", "management", "backup"),
async (req: Request, res: Response) => {
await restoreBackupByUploadedFile(req, res);
}
@ -78,7 +78,7 @@ router.post(
router.post(
"/upload",
PermissionHelper.passCheckMiddleware("create", "user", "backup"),
PermissionHelper.passCheckMiddleware("create", "management", "backup"),
upload.single("file"),
async (req: Request, res: Response) => {
await uploadBackupFile(req, res);

View file

@ -10,7 +10,7 @@ router.get("/", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "user", "user"),
PermissionHelper.passCheckMiddleware("create", "management", "user"),
async (req: Request, res: Response) => {
await inviteUser(req, res);
}
@ -18,7 +18,7 @@ router.post(
router.delete(
"/:mail",
PermissionHelper.passCheckMiddleware("delete", "user", "user"),
PermissionHelper.passCheckMiddleware("delete", "management", "user"),
async (req: Request, res: Response) => {
await deleteInvite(req, res);
}

View file

@ -26,7 +26,7 @@ router.get("/:id/permissions", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "user", "role"),
PermissionHelper.passCheckMiddleware("create", "management", "role"),
async (req: Request, res: Response) => {
await createRole(req, res);
}
@ -34,7 +34,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "user", "role"),
PermissionHelper.passCheckMiddleware("update", "management", "role"),
async (req: Request, res: Response) => {
await updateRole(req, res);
}
@ -42,7 +42,7 @@ router.patch(
router.patch(
"/:id/permissions",
PermissionHelper.passCheckMiddleware("admin", "user", "role"),
PermissionHelper.passCheckMiddleware("admin", "management", "role"),
async (req: Request, res: Response) => {
await updateRolePermissions(req, res);
}
@ -50,7 +50,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "user", "role"),
PermissionHelper.passCheckMiddleware("delete", "management", "role"),
async (req: Request, res: Response) => {
await deleteRole(req, res);
}

View file

@ -32,7 +32,7 @@ router.get("/:id/roles", async (req: Request, res: Response) => {
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "user", "user"),
PermissionHelper.passCheckMiddleware("update", "management", "user"),
async (req: Request, res: Response) => {
await updateUser(req, res);
}
@ -40,7 +40,7 @@ router.patch(
router.patch(
"/:id/permissions",
PermissionHelper.passCheckMiddleware("admin", "user", "user"),
PermissionHelper.passCheckMiddleware("admin", "management", "user"),
async (req: Request, res: Response) => {
await updateUserPermissions(req, res);
}
@ -48,7 +48,7 @@ router.patch(
router.patch(
"/:id/roles",
PermissionHelper.passCheckMiddleware("update", "user", "user"),
PermissionHelper.passCheckMiddleware("update", "management", "user"),
async (req: Request, res: Response) => {
await updateUserRoles(req, res);
}
@ -56,7 +56,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "user", "user"),
PermissionHelper.passCheckMiddleware("delete", "management", "user"),
async (req: Request, res: Response) => {
await deleteUser(req, res);
}

View file

@ -31,7 +31,7 @@ router.get("/:id/permissions", async (req: Request, res: Response) => {
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "user", "webapi"),
PermissionHelper.passCheckMiddleware("create", "management", "webapi"),
async (req: Request, res: Response) => {
await createWebapi(req, res);
}
@ -39,7 +39,7 @@ router.post(
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "user", "webapi"),
PermissionHelper.passCheckMiddleware("update", "management", "webapi"),
async (req: Request, res: Response) => {
await updateWebapi(req, res);
}
@ -47,7 +47,7 @@ router.patch(
router.patch(
"/:id/permissions",
PermissionHelper.passCheckMiddleware("admin", "user", "webapi"),
PermissionHelper.passCheckMiddleware("admin", "management", "webapi"),
async (req: Request, res: Response) => {
await updateWebapiPermissions(req, res);
}
@ -55,7 +55,7 @@ router.patch(
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "user", "webapi"),
PermissionHelper.passCheckMiddleware("delete", "management", "webapi"),
async (req: Request, res: Response) => {
await deleteWebapi(req, res);
}

View file

@ -1,4 +1,4 @@
export type PermissionSection = "club" | "settings" | "user";
export type PermissionSection = "club" | "configuration" | "management";
export type PermissionModule =
| "member"
@ -43,7 +43,7 @@ export type SectionsAndModulesObject = {
[section in PermissionSection]: Array<PermissionModule>;
};
export const permissionSections: Array<PermissionSection> = ["club", "settings", "user"];
export const permissionSections: Array<PermissionSection> = ["club", "configuration", "management"];
export const permissionModules: Array<PermissionModule> = [
"member",
"calendar",
@ -69,7 +69,7 @@ export const permissionModules: Array<PermissionModule> = [
export const permissionTypes: Array<PermissionType> = ["read", "create", "update", "delete"];
export const sectionsAndModules: SectionsAndModulesObject = {
club: ["member", "calendar", "newsletter", "protocol", "query"],
settings: [
configuration: [
"qualification",
"award",
"executive_position",
@ -82,5 +82,5 @@ export const sectionsAndModules: SectionsAndModulesObject = {
"template_usage",
"newsletter_config",
],
user: ["user", "role", "webapi", "backup"],
management: ["user", "role", "webapi", "backup"],
};