Berechtigungen werden nun beim Verbinden überprüft, Bannen wird nun im Piloten-fenster gelogt

This commit is contained in:
PxlLoewe
2025-06-23 23:30:12 -07:00
parent dabcad2525
commit 2e5340d8be
14 changed files with 224 additions and 39 deletions

View File

@@ -29,8 +29,6 @@ router.patch("/:id", async (req, res) => {
res.json(newDispatcher);
});
import { Request, Response } from "express";
router.delete("/:id", async (req, res) => {
const { id } = req.params;
const bann = req.body?.bann as boolean;
@@ -53,7 +51,7 @@ router.delete("/:id", async (req, res) => {
const dispatcher = await prisma.connectedDispatcher.update({
where: { id: Number(id) },
data: { logoutTime: new Date() },
include: bann ? { user: true } : undefined,
include: { user: true },
});
if (!dispatcher) {
@@ -66,7 +64,7 @@ router.delete("/:id", async (req, res) => {
io.to(`user:${dispatcher.userId}`).emit("notification", {
type: "admin-message",
message: `Du wurdest von ${getPublicUser(req.user).publicId} ${until ? `bis zum ${new Date(until).toLocaleString()} ` : ""} ${
status === "ban" ? "gebannt" : "gekickt"
status === "ban" ? "gekickt, deine Rechte wurden entzogen" : "gekickt"
}`,
status,
data: { admin: getPublicUser(req.user), reason },
@@ -79,7 +77,7 @@ router.delete("/:id", async (req, res) => {
where: { id: dispatcher.userId },
data: {
permissions: {
set: req.user.permissions.filter((p) => p !== "DISPO"),
set: dispatcher.user.permissions.filter((p) => p !== "DISPO"),
},
},
});
@@ -87,7 +85,7 @@ router.delete("/:id", async (req, res) => {
await prisma.penalty.create({
data: {
userId: dispatcher.userId,
type: bann ? (until ? "TIME_BAN" : "BAN") : "KICK",
type: bann ? (until ? "TIME_BAN" : "PERMISSIONS_REVOCED") : "KICK",
until: until ? new Date(until) : new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 50),
reason: reason,
createdUserId: req.user.id,