user and role controllers

This commit is contained in:
Julian Krauser 2024-09-01 14:55:05 +02:00
parent 6865507545
commit ab01fc2f76
25 changed files with 769 additions and 26 deletions

12
src/routes/admin/index.ts Normal file
View file

@ -0,0 +1,12 @@
import express from "express";
import PermissionHelper from "../../helpers/permissionHelper";
import role from "./role";
import user from "./user";
var router = express.Router({ mergeParams: true });
router.use("/role", PermissionHelper.passCheckMiddleware("read", "user", "role"), role);
router.use("/user", PermissionHelper.passCheckMiddleware("read", "user", "user"), user);
export default router;

59
src/routes/admin/role.ts Normal file
View file

@ -0,0 +1,59 @@
import express, { Request, Response } from "express";
import PermissionHelper from "../../helpers/permissionHelper";
import {
createRole,
deleteRole,
getAllRoles,
getRoleById,
getRolePermissions,
updateRole,
updateRolePermissions,
} from "../../controller/admin/roleController";
var router = express.Router({ mergeParams: true });
router.get("/", async (req: Request, res: Response) => {
await getAllRoles(req, res);
});
router.get("/:id", async (req: Request, res: Response) => {
await getRoleById(req, res);
});
router.get("/:id/permissions", async (req: Request, res: Response) => {
await getRolePermissions(req, res);
});
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "user", "role"),
async (req: Request, res: Response) => {
await createRole(req, res);
}
);
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "user", "role"),
async (req: Request, res: Response) => {
await updateRole(req, res);
}
);
router.patch(
"/:id/permissions",
PermissionHelper.passCheckMiddleware("update", "user", "role"),
async (req: Request, res: Response) => {
await updateRolePermissions(req, res);
}
);
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "user", "role"),
async (req: Request, res: Response) => {
await deleteRole(req, res);
}
);
export default router;

73
src/routes/admin/user.ts Normal file
View file

@ -0,0 +1,73 @@
import express, { Request, Response } from "express";
import PermissionHelper from "../../helpers/permissionHelper";
import {
deleteUser,
getAllUsers,
getUserById,
getUserPermissions,
getUserRoles,
updateUser,
updateUserPermissions,
updateUserRoles,
} from "../../controller/admin/userController";
import { inviteUser } from "../../controller/inviteController";
var router = express.Router({ mergeParams: true });
router.get("/", async (req: Request, res: Response) => {
await getAllUsers(req, res);
});
router.get("/:id", async (req: Request, res: Response) => {
await getUserById(req, res);
});
router.get("/:id/permissions", async (req: Request, res: Response) => {
await getUserPermissions(req, res);
});
router.get("/:id/roles", async (req: Request, res: Response) => {
await getUserRoles(req, res);
});
router.post(
"/invite",
PermissionHelper.passCheckMiddleware("create", "user", "user"),
async (req: Request, res: Response) => {
await inviteUser(req, res);
}
);
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "user", "user"),
async (req: Request, res: Response) => {
await updateUser(req, res);
}
);
router.patch(
"/:id/permissions",
PermissionHelper.passCheckMiddleware("update", "user", "user"),
async (req: Request, res: Response) => {
await updateUserPermissions(req, res);
}
);
router.patch(
"/:id/roles",
PermissionHelper.passCheckMiddleware("update", "user", "user"),
async (req: Request, res: Response) => {
await updateUserRoles(req, res);
}
);
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "user", "user"),
async (req: Request, res: Response) => {
await deleteUser(req, res);
}
);
export default router;

View file

@ -8,7 +8,7 @@ import errorHandler from "../middleware/errorHandler";
import setup from "./setup";
import auth from "./auth";
import PermissionHelper from "../helpers/permissionHelper";
import admin from "./admin/index";
export default (app: Express) => {
app.set("query parser", "extended");
@ -24,6 +24,6 @@ export default (app: Express) => {
app.use("/setup", allowSetup, setup);
app.use("/auth", auth);
app.use(authenticate);
app.use("/secured", PermissionHelper.passCheckMiddleware("admin", "user"), (req, res) => {});
app.use("/admin", admin);
app.use(errorHandler);
};

View file

@ -17,7 +17,7 @@ router.post(
"/",
ParamaterPassCheckHelper.requiredIncludedMiddleware(["username", "mail", "firstname", "lastname"]),
async (req, res) => {
await inviteUser(req, res);
await inviteUser(req, res, false);
}
);