18b61bed52
- Widen AdminCandidateEditorModal to size lg for better readability - Rename "Clip-Compilation" section to "Clip / Compilation", update copy to reflect single clips too, drop upload hint and Clip-Plattform field, rename label to "Link" - Fix NativeSelect dropdown clipping inside overflow-y-auto modals by teleporting the menu to body with fixed positioning, flip-up logic, and dynamic maxHeight capped to viewport - Add ClipAdminMenuVisible setting (backend domain, contracts, endpoint, migration) with matching frontend types, defaults, form wiring, and toggle in the Clip-Workflow modal — hides the Clips nav item from the admin sidebar when disabled Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
58 lines
3.8 KiB
C#
58 lines
3.8 KiB
C#
namespace Backend.Endpoints;
|
|
|
|
public static partial class AdminModerationEndpoints
|
|
{
|
|
public static RouteGroupBuilder MapAdminModerationEndpoints(this RouteGroupBuilder group)
|
|
{
|
|
group.MapDelete("/clips/{clipId:int}", DeleteClip)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequireWritePermission(context, next, Backend.Security.AdminPermissionCatalog.Clips))
|
|
.WithName("DeleteAdminClip")
|
|
.WithOpenApi();
|
|
group.MapPost("/clips/{clipId:int}/status", UpdateClipStatus)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequireWritePermission(context, next, Backend.Security.AdminPermissionCatalog.Clips))
|
|
.WithName("UpdateAdminClipStatus")
|
|
.WithOpenApi();
|
|
group.MapPost("/nominations/{nominationId:int}/approve", ApproveNomination)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequireWritePermission(context, next, Backend.Security.AdminPermissionCatalog.Nominations))
|
|
.WithName("ApproveAdminNomination")
|
|
.WithOpenApi();
|
|
group.MapPost("/nominations/{nominationId:int}/reject", RejectNomination)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequireWritePermission(context, next, Backend.Security.AdminPermissionCatalog.Nominations))
|
|
.WithName("RejectAdminNomination")
|
|
.WithOpenApi();
|
|
group.MapGet("/nominations/link-blacklist", GetNominationLinkBlacklist)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequirePermission(context, next, Backend.Security.AdminPermissionCatalog.Nominations))
|
|
.WithName("GetAdminNominationLinkBlacklist")
|
|
.WithOpenApi();
|
|
group.MapPut("/nominations/link-blacklist", UpdateNominationLinkBlacklist)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequireWritePermission(context, next, Backend.Security.AdminPermissionCatalog.Nominations))
|
|
.WithName("UpdateAdminNominationLinkBlacklist")
|
|
.WithOpenApi();
|
|
group.MapPost("/nominations/link-blacklist", AddNominationLinkBlacklistEntry)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequireWritePermission(context, next, Backend.Security.AdminPermissionCatalog.Nominations))
|
|
.WithName("AddAdminNominationLinkBlacklistEntry")
|
|
.WithOpenApi();
|
|
group.MapGet("/risk-flags", GetRiskFlags)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequirePermission(context, next, Backend.Security.AdminPermissionCatalog.Risk))
|
|
.WithName("GetAdminRiskFlags")
|
|
.WithOpenApi();
|
|
group.MapPost("/risk-flags/{riskFlagId:int}/resolve", ResolveRiskFlag)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequireWritePermission(context, next, Backend.Security.AdminPermissionCatalog.Risk))
|
|
.WithName("ResolveRiskFlag")
|
|
.WithOpenApi();
|
|
group.MapPost("/risk-flags/bulk-resolve", BulkResolveRiskFlags)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequireWritePermission(context, next, Backend.Security.AdminPermissionCatalog.Risk))
|
|
.WithName("BulkResolveRiskFlags")
|
|
.WithOpenApi();
|
|
group.MapGet("/risk-rules", GetRiskRules)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequirePermission(context, next, Backend.Security.AdminPermissionCatalog.Risk))
|
|
.WithName("GetAdminRiskRules")
|
|
.WithOpenApi();
|
|
group.MapPut("/risk-rules", UpdateRiskRules)
|
|
.AddEndpointFilter((context, next) => AdminEndpointConventions.RequireWritePermission(context, next, Backend.Security.AdminPermissionCatalog.Risk))
|
|
.WithName("UpdateAdminRiskRules")
|
|
.WithOpenApi();
|
|
return group;
|
|
}
|
|
}
|