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 { DISCORD_ROLES } from "@repo/db";
|
||||
import { Server, Socket } from "socket.io";
|
||||
import { getUserPenaltys } from "helper";
|
||||
|
||||
export const handleConnectDispatch =
|
||||
(socket: Socket, io: Server) =>
|
||||
@@ -28,8 +29,17 @@ export const handleConnectDispatch =
|
||||
return;
|
||||
}
|
||||
|
||||
if (!user.permissions?.includes("DISPO")) {
|
||||
socket.emit("error", "You do not have permission to connect to the dispatch server.");
|
||||
const userPenaltys = await getUserPenaltys(user.id);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ import { addRolesToMember, removeRolesFromMember, renameMember } from "modules/d
|
||||
import { getNextDateWithTime } from "@repo/shared-components";
|
||||
import { DISCORD_ROLES } from "@repo/db";
|
||||
import { Server, Socket } from "socket.io";
|
||||
import { getUserPenaltys } from "helper";
|
||||
|
||||
export const handleConnectPilot =
|
||||
(socket: Socket, io: Server) =>
|
||||
@@ -34,6 +35,19 @@ export const handleConnectPilot =
|
||||
socket.disconnect();
|
||||
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");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user