diff --git a/Foxnouns.Backend/Controllers/Moderation/ReportsController.cs b/Foxnouns.Backend/Controllers/Moderation/ReportsController.cs index 2bd2b2d..c5472b3 100644 --- a/Foxnouns.Backend/Controllers/Moderation/ReportsController.cs +++ b/Foxnouns.Backend/Controllers/Moderation/ReportsController.cs @@ -229,6 +229,7 @@ public class ReportsController( .Reports.Include(r => r.Reporter) .Include(r => r.TargetUser) .Include(r => r.TargetMember) + .Include(r => r.AuditLogEntry) .FirstOrDefaultAsync(r => r.Id == id, ct); if (report == null) throw new ApiError.NotFound("No report with that ID found."); @@ -243,6 +244,9 @@ public class ReportsController( ), Member: report.TargetMember != null ? memberRenderer.RenderMember(report.TargetMember) + : null, + AuditLogEntry: report.AuditLogEntry != null + ? moderationRenderer.RenderAuditLogEntry(report.AuditLogEntry) : null ) ); diff --git a/Foxnouns.Backend/Dto/Moderation.cs b/Foxnouns.Backend/Dto/Moderation.cs index 3792e31..26fd0aa 100644 --- a/Foxnouns.Backend/Dto/Moderation.cs +++ b/Foxnouns.Backend/Dto/Moderation.cs @@ -39,7 +39,9 @@ public record ReportResponse( public record ReportDetailResponse( ReportResponse Report, UserResponse User, - [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] MemberResponse? Member + [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] MemberResponse? Member, + [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + AuditLogResponse? AuditLogEntry ); public record AuditLogResponse( diff --git a/Foxnouns.Frontend/src/lib/api/models/moderation.ts b/Foxnouns.Frontend/src/lib/api/models/moderation.ts index edd0865..eee9382 100644 --- a/Foxnouns.Frontend/src/lib/api/models/moderation.ts +++ b/Foxnouns.Frontend/src/lib/api/models/moderation.ts @@ -75,6 +75,7 @@ export type ReportDetails = { report: Report; user: User; member?: Member; + audit_log_entry?: AuditLogEntry; }; export type QueriedUser = { diff --git a/Foxnouns.Frontend/src/lib/components/admin/ClosedReportAuditLog.svelte b/Foxnouns.Frontend/src/lib/components/admin/ClosedReportAuditLog.svelte new file mode 100644 index 0000000..7f7f3b0 --- /dev/null +++ b/Foxnouns.Frontend/src/lib/components/admin/ClosedReportAuditLog.svelte @@ -0,0 +1,37 @@ + + +
+ {#if entry.type === AuditLogEntryType.IgnoreReport}
+ Report was ignored
+ {:else if entry.type === AuditLogEntryType.WarnUser || entry.type === AuditLogEntryType.WarnUserAndClearProfile}
+ User was warned
+ {#if entry.cleared_fields && entry.cleared_fields.length > 0}
+
Cleared fields: {entry.cleared_fields.join(", ")}
+ {/if}
+ {:else if entry.type === AuditLogEntryType.SuspendUser}
+ User was suspended
+ {/if}
+
+ {#if entry.reason} + {@html renderMarkdown(entry.reason)} + {:else} + (no reason given) + {/if} +
++ This should not happen! +
+