added user casacde delete
This commit is contained in:
20
.vscode/settings.json
vendored
20
.vscode/settings.json
vendored
@@ -3,7 +3,8 @@
|
|||||||
"files.autoSave": "off",
|
"files.autoSave": "off",
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||||
"editor.codeActionsOnSave": ["source.formatDocument", "source.fixAll.eslint"],
|
"editor.codeActionsOnSave": ["source.formatDocument", "source.fixAll.eslint"],
|
||||||
"eslint.lintTask.enable": true,
|
"typescript.validate.enable": true,
|
||||||
|
"typescript.tsserver.experimental.enableProjectDiagnostics": true,
|
||||||
"restoreTerminals.terminals": [
|
"restoreTerminals.terminals": [
|
||||||
{
|
{
|
||||||
"splitTerminals": [
|
"splitTerminals": [
|
||||||
@@ -17,20 +18,5 @@
|
|||||||
"typescript.tsdk": "node_modules/typescript/lib",
|
"typescript.tsdk": "node_modules/typescript/lib",
|
||||||
"[prisma]": {
|
"[prisma]": {
|
||||||
"editor.defaultFormatter": "Prisma.prisma"
|
"editor.defaultFormatter": "Prisma.prisma"
|
||||||
},
|
}
|
||||||
"[xml]": {
|
|
||||||
"editor.defaultFormatter": "redhat.vscode-xml"
|
|
||||||
},
|
|
||||||
"sqltools.connections": [
|
|
||||||
{
|
|
||||||
"previewLimit": 50,
|
|
||||||
"server": "localhost",
|
|
||||||
"port": 5432,
|
|
||||||
"driver": "PostgreSQL",
|
|
||||||
"name": "Persistant-Data",
|
|
||||||
"database": "var",
|
|
||||||
"username": "persistant-data",
|
|
||||||
"password": "persistant-data-pw"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,10 +47,12 @@ export const Penalty = async () => {
|
|||||||
<p className="text-left">
|
<p className="text-left">
|
||||||
<span className="font-bold">Grund:</span> {openTimeban[0].reason}
|
<span className="font-bold">Grund:</span> {openTimeban[0].reason}
|
||||||
</p>
|
</p>
|
||||||
<p className="text-left">
|
{openTimeban[0].CreatedUser && (
|
||||||
<span className="font-bold">Admin:</span>{" "}
|
<p className="text-left">
|
||||||
{getPublicUser(openTimeban[0].CreatedUser).fullName}
|
<span className="font-bold">Admin:</span>{" "}
|
||||||
</p>
|
{getPublicUser(openTimeban[0].CreatedUser).fullName}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{session?.user.isBanned && (
|
{session?.user.isBanned && (
|
||||||
@@ -68,10 +70,12 @@ export const Penalty = async () => {
|
|||||||
<p className="text-left font-bold">
|
<p className="text-left font-bold">
|
||||||
Grund: {openBans[0].reason || "Keine Begründung gefunden"}
|
Grund: {openBans[0].reason || "Keine Begründung gefunden"}
|
||||||
</p>
|
</p>
|
||||||
<p className="text-left">
|
{openBans[0].CreatedUser && (
|
||||||
<span className="font-bold">Admin:</span>{" "}
|
<p className="text-left">
|
||||||
{getPublicUser(openBans[0].CreatedUser).fullName || "Keine Admin gefunden"}
|
<span className="font-bold">Admin:</span>{" "}
|
||||||
</p>
|
{getPublicUser(openBans[0].CreatedUser).fullName}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -43,10 +43,12 @@ export default async function Page({ params }: { params: Promise<{ id: string }>
|
|||||||
<span className="font-semibold">Benutzer:</span> {penalty.User.firstname}{" "}
|
<span className="font-semibold">Benutzer:</span> {penalty.User.firstname}{" "}
|
||||||
{penalty.User.lastname} ({penalty.User.publicId})
|
{penalty.User.lastname} ({penalty.User.publicId})
|
||||||
</p>
|
</p>
|
||||||
<p>
|
{penalty.CreatedUser && (
|
||||||
<span className="font-semibold">Erstellt von:</span> {penalty.CreatedUser.firstname}{" "}
|
<p>
|
||||||
{penalty.CreatedUser.lastname} ({penalty.CreatedUser.publicId})
|
<span className="font-semibold">Erstellt von:</span> {penalty.CreatedUser.firstname}{" "}
|
||||||
</p>
|
{penalty.CreatedUser.lastname} ({penalty.CreatedUser.publicId})
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
<p>
|
<p>
|
||||||
<span className="font-semibold">Typ:</span> {penalty.type}
|
<span className="font-semibold">Typ:</span> {penalty.type}
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { de } from "date-fns/locale";
|
|||||||
import { cn } from "../../../../helper/cn";
|
import { cn } from "../../../../helper/cn";
|
||||||
import { HobbyKnifeIcon } from "@radix-ui/react-icons";
|
import { HobbyKnifeIcon } from "@radix-ui/react-icons";
|
||||||
|
|
||||||
export const penaltyColumns: ColumnDef<Penalty & { Report: Report }>[] = [
|
export const penaltyColumns: ColumnDef<Penalty & { Report: Report; CreatedUser: User | null }>[] = [
|
||||||
{
|
{
|
||||||
accessorKey: "type",
|
accessorKey: "type",
|
||||||
header: "Typ",
|
header: "Typ",
|
||||||
@@ -59,7 +59,8 @@ export const penaltyColumns: ColumnDef<Penalty & { Report: Report }>[] = [
|
|||||||
accessorKey: "CreatedUser",
|
accessorKey: "CreatedUser",
|
||||||
header: "Bestraft durch",
|
header: "Bestraft durch",
|
||||||
cell: ({ row }) => {
|
cell: ({ row }) => {
|
||||||
const user = row.getValue("CreatedUser") as User;
|
const user = row.original.CreatedUser;
|
||||||
|
if (!user) return "Unbekannt";
|
||||||
return `${user.firstname} ${user.lastname} (${user.publicId})`;
|
return `${user.firstname} ${user.lastname} (${user.publicId})`;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ export const ReportSenderInfo = ({
|
|||||||
report,
|
report,
|
||||||
}: {
|
}: {
|
||||||
report: IReport & {
|
report: IReport & {
|
||||||
Reported?: User;
|
Reported: User;
|
||||||
Sender?: User;
|
Sender: User | null;
|
||||||
};
|
};
|
||||||
}) => {
|
}) => {
|
||||||
const { Reported, Sender } = report;
|
const { Reported, Sender } = report;
|
||||||
@@ -49,7 +49,8 @@ export const ReportAdmin = ({
|
|||||||
}: {
|
}: {
|
||||||
report: IReport & {
|
report: IReport & {
|
||||||
Reported?: User;
|
Reported?: User;
|
||||||
Sender?: User;
|
Sender: User | null;
|
||||||
|
|
||||||
Reviewer?: User | null;
|
Reviewer?: User | null;
|
||||||
};
|
};
|
||||||
}) => {
|
}) => {
|
||||||
@@ -136,7 +137,8 @@ export const ReportPenalties = ({
|
|||||||
}: {
|
}: {
|
||||||
report: IReport & {
|
report: IReport & {
|
||||||
Reported?: User;
|
Reported?: User;
|
||||||
Sender?: User;
|
Sender: User | null;
|
||||||
|
|
||||||
Reviewer?: User | null;
|
Reviewer?: User | null;
|
||||||
};
|
};
|
||||||
}) => {
|
}) => {
|
||||||
|
|||||||
@@ -1,45 +1,3 @@
|
|||||||
model Account {
|
|
||||||
id Int @id @default(autoincrement())
|
|
||||||
compoundId String @unique @map(name: "compound_id")
|
|
||||||
userId Int @map(name: "user_id")
|
|
||||||
providerType String @map(name: "provider_type")
|
|
||||||
providerId String @map(name: "provider_id")
|
|
||||||
providerAccountId String @map(name: "provider_account_id")
|
|
||||||
refreshToken String? @map(name: "refresh_token")
|
|
||||||
accessToken String? @map(name: "access_token")
|
|
||||||
accessTokenExpires DateTime? @map(name: "access_token_expires")
|
|
||||||
createdAt DateTime @default(now()) @map(name: "created_at")
|
|
||||||
updatedAt DateTime @default(now()) @map(name: "updated_at")
|
|
||||||
|
|
||||||
@@index([providerAccountId], name: "providerAccountId")
|
|
||||||
@@index([providerId], name: "providerId")
|
|
||||||
@@index([userId], name: "userId")
|
|
||||||
@@map(name: "accounts")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Session {
|
|
||||||
id Int @id @default(autoincrement())
|
|
||||||
userId Int @map(name: "user_id")
|
|
||||||
expires DateTime
|
|
||||||
sessionToken String @unique @map(name: "session_token")
|
|
||||||
accessToken String @unique @map(name: "access_token")
|
|
||||||
createdAt DateTime @default(now()) @map(name: "created_at")
|
|
||||||
updatedAt DateTime @default(now()) @map(name: "updated_at")
|
|
||||||
|
|
||||||
@@map(name: "sessions")
|
|
||||||
}
|
|
||||||
|
|
||||||
model VerificationRequest {
|
|
||||||
id Int @id @default(autoincrement())
|
|
||||||
identifier String
|
|
||||||
token String @unique
|
|
||||||
expires DateTime
|
|
||||||
createdAt DateTime @default(now()) @map(name: "created_at")
|
|
||||||
updatedAt DateTime @default(now()) @map(name: "updated_at")
|
|
||||||
|
|
||||||
@@map(name: "verification_requests")
|
|
||||||
}
|
|
||||||
|
|
||||||
model OAuthToken {
|
model OAuthToken {
|
||||||
id Int @id @default(autoincrement())
|
id Int @id @default(autoincrement())
|
||||||
userId String @map(name: "user_id")
|
userId String @map(name: "user_id")
|
||||||
@@ -49,7 +7,7 @@ model OAuthToken {
|
|||||||
updatedAt DateTime @default(now()) @map(name: "updated_at")
|
updatedAt DateTime @default(now()) @map(name: "updated_at")
|
||||||
|
|
||||||
// relations:
|
// relations:
|
||||||
user User @relation(fields: [userId], references: [id]) // Beziehung zu User
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade) // Beziehung zu User
|
||||||
|
|
||||||
@@map(name: "oauth_tokens")
|
@@map(name: "oauth_tokens")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,6 @@ model ChatMessage {
|
|||||||
senderName String
|
senderName String
|
||||||
|
|
||||||
// relations:
|
// relations:
|
||||||
sender User @relation("SentMessages", fields: [senderId], references: [id])
|
sender User @relation("SentMessages", fields: [senderId], references: [id], onDelete: Cascade)
|
||||||
receiver User @relation("ReceivedMessages", fields: [receiverId], references: [id])
|
receiver User @relation("ReceivedMessages", fields: [receiverId], references: [id], onDelete: Cascade)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,6 @@ model ConnectedAircraft {
|
|||||||
positionLogIds Int[] @default([])
|
positionLogIds Int[] @default([])
|
||||||
|
|
||||||
// relations:
|
// relations:
|
||||||
User User @relation(fields: [userId], references: [id])
|
User User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||||
Station Station @relation(fields: [stationId], references: [id])
|
Station Station @relation(fields: [stationId], references: [id], onDelete: Cascade)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ model ConnectedDispatcher {
|
|||||||
logoutTime DateTime?
|
logoutTime DateTime?
|
||||||
|
|
||||||
// relations:
|
// relations:
|
||||||
user User @relation(fields: [userId], references: [id])
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ model Participant {
|
|||||||
statusLog Json[] @default([])
|
statusLog Json[] @default([])
|
||||||
eventId Int
|
eventId Int
|
||||||
// relations:
|
// relations:
|
||||||
User User @relation(fields: [userId], references: [id])
|
User User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||||
Event Event @relation(fields: [eventId], references: [id])
|
Event Event @relation(fields: [eventId], references: [id])
|
||||||
EventAppointment EventAppointment? @relation(fields: [eventAppointmentId], references: [id])
|
EventAppointment EventAppointment? @relation(fields: [eventAppointmentId], references: [id])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,11 +29,11 @@ model Mission {
|
|||||||
hpgValidationState HpgValidationState @default(NOT_VALIDATED)
|
hpgValidationState HpgValidationState @default(NOT_VALIDATED)
|
||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
updatedAt DateTime @updatedAt
|
updatedAt DateTime @updatedAt
|
||||||
createdUserId String
|
createdUserId String?
|
||||||
|
|
||||||
// relations:
|
// relations:
|
||||||
|
|
||||||
CreatedUser User @relation(fields: [createdUserId], references: [id])
|
CreatedUser User? @relation(fields: [createdUserId], references: [id])
|
||||||
|
|
||||||
MissionsOnStations MissionsOnStations[]
|
MissionsOnStations MissionsOnStations[]
|
||||||
MissionOnStationUsers MissionOnStationUsers[]
|
MissionOnStationUsers MissionOnStationUsers[]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
model Penalty {
|
model Penalty {
|
||||||
id Int @id @default(autoincrement())
|
id Int @id @default(autoincrement())
|
||||||
userId String
|
userId String
|
||||||
createdUserId String
|
createdUserId String?
|
||||||
reportId Int?
|
reportId Int?
|
||||||
|
|
||||||
type PenaltyType
|
type PenaltyType
|
||||||
@@ -13,8 +13,8 @@ model Penalty {
|
|||||||
timestamp DateTime @default(now())
|
timestamp DateTime @default(now())
|
||||||
|
|
||||||
// relations:
|
// relations:
|
||||||
User User @relation(fields: [userId], references: [id])
|
User User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||||
CreatedUser User @relation("CreatedPenalties", fields: [createdUserId], references: [id])
|
CreatedUser User? @relation("CreatedPenalties", fields: [createdUserId], references: [id])
|
||||||
Report Report? @relation(fields: [reportId], references: [id])
|
Report Report? @relation(fields: [reportId], references: [id])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ model PositionLog {
|
|||||||
heading Int
|
heading Int
|
||||||
timestamp DateTime @default(now())
|
timestamp DateTime @default(now())
|
||||||
// relations:
|
// relations:
|
||||||
user User @relation(fields: [userId], references: [id])
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
model Report {
|
model Report {
|
||||||
id Int @id @default(autoincrement())
|
id Int @id @default(autoincrement())
|
||||||
text String
|
text String
|
||||||
senderUserId String
|
senderUserId String?
|
||||||
reportedUserRole String @default("KP")
|
reportedUserRole String @default("KP")
|
||||||
reportedUserId String
|
reportedUserId String
|
||||||
timestamp DateTime @default(now())
|
timestamp DateTime @default(now())
|
||||||
@@ -10,8 +10,8 @@ model Report {
|
|||||||
reviewerUserId String?
|
reviewerUserId String?
|
||||||
|
|
||||||
// relations:
|
// relations:
|
||||||
Sender User @relation("SentReports", fields: [senderUserId], references: [id])
|
Sender User? @relation("SentReports", fields: [senderUserId], references: [id])
|
||||||
Reported User @relation("ReceivedReports", fields: [reportedUserId], references: [id])
|
Reported User @relation("ReceivedReports", fields: [reportedUserId], references: [id], onDelete: Cascade)
|
||||||
Reviewer User? @relation("ReviewedReports", fields: [reviewerUserId], references: [id])
|
Reviewer User? @relation("ReviewedReports", fields: [reviewerUserId], references: [id])
|
||||||
Penalty Penalty[]
|
Penalty Penalty[]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user