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