Include Profile log in renamed penalty model -> Audit log
This commit is contained in:
@@ -57,10 +57,13 @@ export const deletePilotHistory = async (id: number) => {
|
||||
});
|
||||
};
|
||||
export const deleteUser = async (id: string) => {
|
||||
return await prisma.user.delete({
|
||||
return await prisma.user.update({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
data: {
|
||||
isDeleted: true,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -10,6 +10,9 @@ const page = async () => {
|
||||
if (!user) return null;
|
||||
|
||||
const events = await prisma.event.findMany({
|
||||
orderBy: {
|
||||
id: "desc",
|
||||
},
|
||||
where: {
|
||||
hidden: false,
|
||||
},
|
||||
|
||||
@@ -23,6 +23,7 @@ export const options: AuthOptions = {
|
||||
contains: credentials.email,
|
||||
mode: "insensitive",
|
||||
},
|
||||
isDeleted: false,
|
||||
},
|
||||
});
|
||||
const v1User = (oldUser as OldUser[]).find(
|
||||
@@ -87,6 +88,7 @@ export const options: AuthOptions = {
|
||||
const dbUser = await prisma.user.findUnique({
|
||||
where: {
|
||||
id: token?.sub,
|
||||
isDeleted: false,
|
||||
},
|
||||
});
|
||||
if (!dbUser) {
|
||||
|
||||
@@ -1,5 +1,27 @@
|
||||
import { User } from "../../generated/client";
|
||||
|
||||
// USer History
|
||||
|
||||
interface UserDeletedEvent {
|
||||
type: "USER_DELETED";
|
||||
reason: string;
|
||||
date: string;
|
||||
by: string;
|
||||
}
|
||||
|
||||
interface UserProfileUpdatedEvent {
|
||||
type: "USER_PROFILE_UPDATED";
|
||||
changes: {
|
||||
field: string;
|
||||
oldValue: string;
|
||||
newValue: string;
|
||||
};
|
||||
date: string;
|
||||
by: string;
|
||||
}
|
||||
|
||||
export type UserHistoryEvent = UserDeletedEvent | UserProfileUpdatedEvent;
|
||||
|
||||
export interface PublicUser {
|
||||
firstname: string;
|
||||
lastname: string;
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
model Penalty {
|
||||
model AuditLog {
|
||||
id Int @id @default(autoincrement())
|
||||
userId String
|
||||
createdUserId String?
|
||||
reportId Int?
|
||||
|
||||
type PenaltyType
|
||||
reason String
|
||||
// Generalized action type to cover penalties and user history events
|
||||
action AuditLogAction?
|
||||
reason String?
|
||||
until DateTime?
|
||||
|
||||
suspended Boolean @default(false)
|
||||
@@ -18,9 +19,13 @@ model Penalty {
|
||||
Report Report? @relation(fields: [reportId], references: [id])
|
||||
}
|
||||
|
||||
enum PenaltyType {
|
||||
enum AuditLogAction {
|
||||
// Penalty actions
|
||||
KICK
|
||||
TIME_BAN
|
||||
PERMISSIONS_REVOCED
|
||||
BAN
|
||||
// User history events
|
||||
USER_DELETED
|
||||
USER_PROFILE_UPDATED
|
||||
}
|
||||
|
||||
@@ -10,8 +10,8 @@ model Report {
|
||||
reviewerUserId String?
|
||||
|
||||
// relations:
|
||||
Sender User? @relation("SentReports", fields: [senderUserId], references: [id])
|
||||
Reported User @relation("ReceivedReports", fields: [reportedUserId], references: [id], onDelete: Cascade)
|
||||
Reviewer User? @relation("ReviewedReports", fields: [reviewerUserId], references: [id])
|
||||
Penalty Penalty[]
|
||||
Sender User? @relation("SentReports", fields: [senderUserId], references: [id])
|
||||
Reported User @relation("ReceivedReports", fields: [reportedUserId], references: [id], onDelete: Cascade)
|
||||
Reviewer User? @relation("ReviewedReports", fields: [reviewerUserId], references: [id])
|
||||
AuditLog AuditLog[]
|
||||
}
|
||||
|
||||
@@ -54,12 +54,14 @@ model User {
|
||||
emailVerificationExpiresAt DateTime? @map(name: "email_verification_expires_at")
|
||||
emailVerified Boolean @default(false)
|
||||
|
||||
image String?
|
||||
badges BADGES[] @default([])
|
||||
permissions PERMISSION[] @default([])
|
||||
createdAt DateTime @default(now()) @map(name: "created_at")
|
||||
updatedAt DateTime @default(now()) @map(name: "updated_at")
|
||||
isBanned Boolean @default(false) @map(name: "is_banned")
|
||||
image String?
|
||||
badges BADGES[] @default([])
|
||||
permissions PERMISSION[] @default([])
|
||||
createdAt DateTime @default(now()) @map(name: "created_at")
|
||||
updatedAt DateTime @default(now()) @map(name: "updated_at")
|
||||
isBanned Boolean @default(false) @map(name: "is_banned")
|
||||
isDeleted Boolean @default(false) @map(name: "is_deleted")
|
||||
|
||||
// relations:
|
||||
oauthTokens OAuthToken[]
|
||||
discordAccounts DiscordAccount[]
|
||||
@@ -76,9 +78,10 @@ model User {
|
||||
ConnectedDispatcher ConnectedDispatcher[]
|
||||
ConnectedAircraft ConnectedAircraft[]
|
||||
PositionLog PositionLog[]
|
||||
Penaltys Penalty[]
|
||||
CreatedPenalties Penalty[] @relation("CreatedPenalties")
|
||||
Penaltys AuditLog[]
|
||||
CreatedAuditLogEntrys AuditLog[] @relation("CreatedAuditLogEntrys")
|
||||
Bookings Booking[]
|
||||
auditLogs AuditLog[]
|
||||
|
||||
@@map(name: "users")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user