Zeitstreafen werden nun beim Verbinden überprüft
This commit is contained in:
32
apps/dispatch-server/helper.ts
Normal file
32
apps/dispatch-server/helper.ts
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
import { prisma } from "@repo/db";
|
||||||
|
|
||||||
|
export const getUserPenaltys = async (userId: string) => {
|
||||||
|
const openTimeban = await prisma.penalty.findMany({
|
||||||
|
where: {
|
||||||
|
userId: userId,
|
||||||
|
until: {
|
||||||
|
gte: new Date(),
|
||||||
|
},
|
||||||
|
suspended: false,
|
||||||
|
type: "TIME_BAN",
|
||||||
|
},
|
||||||
|
include: {
|
||||||
|
CreatedUser: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const openBans = await prisma.penalty.findMany({
|
||||||
|
where: {
|
||||||
|
userId: userId,
|
||||||
|
suspended: false,
|
||||||
|
type: "BAN",
|
||||||
|
},
|
||||||
|
include: {
|
||||||
|
CreatedUser: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
openTimeban,
|
||||||
|
openBans,
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import { addRolesToMember, removeRolesFromMember, renameMember } from "modules/d
|
|||||||
import { getNextDateWithTime } from "@repo/shared-components";
|
import { getNextDateWithTime } from "@repo/shared-components";
|
||||||
import { DISCORD_ROLES } from "@repo/db";
|
import { DISCORD_ROLES } from "@repo/db";
|
||||||
import { Server, Socket } from "socket.io";
|
import { Server, Socket } from "socket.io";
|
||||||
|
import { getUserPenaltys } from "helper";
|
||||||
|
|
||||||
export const handleConnectDispatch =
|
export const handleConnectDispatch =
|
||||||
(socket: Socket, io: Server) =>
|
(socket: Socket, io: Server) =>
|
||||||
@@ -28,8 +29,17 @@ export const handleConnectDispatch =
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!user.permissions?.includes("DISPO")) {
|
const userPenaltys = await getUserPenaltys(user.id);
|
||||||
socket.emit("error", "You do not have permission to connect to the dispatch server.");
|
|
||||||
|
if (
|
||||||
|
userPenaltys.openTimeban.length > 0 ||
|
||||||
|
user.isBanned ||
|
||||||
|
userPenaltys.openBans.length > 0
|
||||||
|
) {
|
||||||
|
socket.emit("connect-message", {
|
||||||
|
message: "Du hast eine aktive Strafe und kannst dich deshalb nicht verbinden.",
|
||||||
|
});
|
||||||
|
socket.disconnect();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { addRolesToMember, removeRolesFromMember, renameMember } from "modules/d
|
|||||||
import { getNextDateWithTime } from "@repo/shared-components";
|
import { getNextDateWithTime } from "@repo/shared-components";
|
||||||
import { DISCORD_ROLES } from "@repo/db";
|
import { DISCORD_ROLES } from "@repo/db";
|
||||||
import { Server, Socket } from "socket.io";
|
import { Server, Socket } from "socket.io";
|
||||||
|
import { getUserPenaltys } from "helper";
|
||||||
|
|
||||||
export const handleConnectPilot =
|
export const handleConnectPilot =
|
||||||
(socket: Socket, io: Server) =>
|
(socket: Socket, io: Server) =>
|
||||||
@@ -34,6 +35,19 @@ export const handleConnectPilot =
|
|||||||
socket.disconnect();
|
socket.disconnect();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
const userPenaltys = await getUserPenaltys(userId);
|
||||||
|
|
||||||
|
if (
|
||||||
|
userPenaltys.openTimeban.length > 0 ||
|
||||||
|
user.isBanned ||
|
||||||
|
userPenaltys.openBans.length > 0
|
||||||
|
) {
|
||||||
|
socket.emit("connect-message", {
|
||||||
|
message: "Du hast eine aktive Strafe und kannst dich deshalb nicht verbinden.",
|
||||||
|
});
|
||||||
|
socket.disconnect();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!user) return Error("User not found");
|
if (!user) return Error("User not found");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user