diff --git a/Foxnouns.Backend/Controllers/Authentication/FediverseAuthController.cs b/Foxnouns.Backend/Controllers/Authentication/FediverseAuthController.cs index edc7b6a..3dcc817 100644 --- a/Foxnouns.Backend/Controllers/Authentication/FediverseAuthController.cs +++ b/Foxnouns.Backend/Controllers/Authentication/FediverseAuthController.cs @@ -44,7 +44,7 @@ public class FediverseAuthController( [ProducesResponseType(statusCode: StatusCodes.Status200OK)] public async Task GetFediverseUrlAsync( [FromQuery] string instance, - [FromQuery(Name = "force-refresh")] bool forceRefresh = false + [FromQuery] bool forceRefresh = false ) { if (instance.Any(c => c is '@' or ':' or '/') || !instance.Contains('.')) @@ -139,7 +139,7 @@ public class FediverseAuthController( [Authorize("*")] public async Task AddFediverseAccountAsync( [FromQuery] string instance, - [FromQuery(Name = "force-refresh")] bool forceRefresh = false + [FromQuery] bool forceRefresh = false ) { if (instance.Any(c => c is '@' or ':' or '/') || !instance.Contains('.')) diff --git a/Foxnouns.Backend/Controllers/Moderation/ReportsController.cs b/Foxnouns.Backend/Controllers/Moderation/ReportsController.cs index 3e9f905..b8acc56 100644 --- a/Foxnouns.Backend/Controllers/Moderation/ReportsController.cs +++ b/Foxnouns.Backend/Controllers/Moderation/ReportsController.cs @@ -173,9 +173,6 @@ public class ReportsController( public async Task GetReportsAsync( [FromQuery] int? limit = null, [FromQuery] Snowflake? before = null, - [FromQuery] Snowflake? after = null, - [FromQuery(Name = "by-reporter")] Snowflake? byReporter = null, - [FromQuery(Name = "by-target")] Snowflake? byTarget = null, [FromQuery(Name = "include-closed")] bool includeClosed = false ) { @@ -190,21 +187,11 @@ public class ReportsController( IQueryable query = db .Reports.Include(r => r.Reporter) .Include(r => r.TargetUser) - .Include(r => r.TargetMember); - - if (byTarget != null && await db.Users.AnyAsync(u => u.Id == byTarget.Value)) - query = query.Where(r => r.TargetUserId == byTarget.Value); - - if (byReporter != null && await db.Users.AnyAsync(u => u.Id == byReporter.Value)) - query = query.Where(r => r.ReporterId == byReporter.Value); + .Include(r => r.TargetMember) + .OrderByDescending(r => r.Id); if (before != null) - query = query.Where(r => r.Id < before.Value).OrderByDescending(r => r.Id); - else if (after != null) - query = query.Where(r => r.Id > after.Value).OrderBy(r => r.Id); - else - query = query.OrderByDescending(r => r.Id); - + query = query.Where(r => r.Id < before.Value); if (!includeClosed) query = query.Where(r => r.Status == ReportStatus.Open); diff --git a/Foxnouns.Backend/Dto/User.cs b/Foxnouns.Backend/Dto/User.cs index f193811..c681001 100644 --- a/Foxnouns.Backend/Dto/User.cs +++ b/Foxnouns.Backend/Dto/User.cs @@ -48,7 +48,6 @@ public record UserResponse( [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] Instant? LastActive, [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] Instant? LastSidReroll, [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] string? Timezone, - [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] bool? Suspended, [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] bool? Deleted ); diff --git a/Foxnouns.Backend/Middleware/LimitMiddleware.cs b/Foxnouns.Backend/Middleware/LimitMiddleware.cs index 1c5f522..82613c5 100644 --- a/Foxnouns.Backend/Middleware/LimitMiddleware.cs +++ b/Foxnouns.Backend/Middleware/LimitMiddleware.cs @@ -23,29 +23,25 @@ public class LimitMiddleware : IMiddleware Endpoint? endpoint = ctx.GetEndpoint(); LimitAttribute? attribute = endpoint?.Metadata.GetMetadata(); - Token? token = ctx.GetToken(); - if (attribute == null) { - // Check for authorize attribute - // If it exists, and the user is deleted, throw an error. - if ( - endpoint?.Metadata.GetMetadata() != null - && token?.User.Deleted == true - ) - { - throw new ApiError.Forbidden("Deleted users cannot access this endpoint."); - } - await next(ctx); return; } - if (token?.User.Deleted == true && !attribute.UsableBySuspendedUsers) + Token? token = ctx.GetToken(); + if ( + token?.User.Deleted == true + && (!attribute.UsableBySuspendedUsers || token.User.DeletedBy == null) + ) + { throw new ApiError.Forbidden("Deleted users cannot access this endpoint."); + } if (attribute.RequireAdmin && token?.User.Role != UserRole.Admin) + { throw new ApiError.Forbidden("This endpoint can only be used by admins."); + } if ( attribute.RequireModerator diff --git a/Foxnouns.Backend/Services/ModerationRendererService.cs b/Foxnouns.Backend/Services/ModerationRendererService.cs index deed9c5..e5d8165 100644 --- a/Foxnouns.Backend/Services/ModerationRendererService.cs +++ b/Foxnouns.Backend/Services/ModerationRendererService.cs @@ -21,6 +21,7 @@ using Newtonsoft.Json.Linq; namespace Foxnouns.Backend.Services; public class ModerationRendererService( + DatabaseContext db, UserRendererService userRenderer, MemberRendererService memberRenderer ) diff --git a/Foxnouns.Backend/Services/UserRendererService.cs b/Foxnouns.Backend/Services/UserRendererService.cs index df40e1a..7a00328 100644 --- a/Foxnouns.Backend/Services/UserRendererService.cs +++ b/Foxnouns.Backend/Services/UserRendererService.cs @@ -115,7 +115,6 @@ public class UserRendererService( tokenHidden ? user.LastActive : null, tokenHidden ? user.LastSidReroll : null, tokenHidden ? user.Timezone ?? "" : null, - tokenHidden ? user is { Deleted: true, DeletedBy: not null } : null, tokenHidden ? user.Deleted : null ); } diff --git a/Foxnouns.Frontend/src/lib/api/models/user.ts b/Foxnouns.Frontend/src/lib/api/models/user.ts index 6cd8e4c..29740e6 100644 --- a/Foxnouns.Frontend/src/lib/api/models/user.ts +++ b/Foxnouns.Frontend/src/lib/api/models/user.ts @@ -26,7 +26,6 @@ export type MeUser = UserWithMembers & { last_active: string; last_sid_reroll: string; timezone: string; - suspended: boolean; deleted: boolean; }; diff --git a/Foxnouns.Frontend/src/lib/components/Navbar.svelte b/Foxnouns.Frontend/src/lib/components/Navbar.svelte index 68c1b14..365ede2 100644 --- a/Foxnouns.Frontend/src/lib/components/Navbar.svelte +++ b/Foxnouns.Frontend/src/lib/components/Navbar.svelte @@ -21,17 +21,10 @@ {#if user && user.deleted} -
- {#if user.suspended} - {$t("nav.suspended-account-hint")} -
- {$t("nav.appeal-suspension-link")} - {:else} - {$t("nav.deleted-account-hint")} -
- {$t("nav.reactivate-account-link")} • - {$t("nav.delete-permanently-link")} - {/if} +
+ {$t("nav.suspended-account-hint")} +
+ {$t("nav.appeal-suspension-link")}
{/if} @@ -73,7 +66,7 @@