"use server"; import { requirePermission } from "@/lib/admin/guard"; import { redirectSafe } from "@/lib/foundation/security"; import { PERMS } from "@/lib/permissions"; import { prisma } from "@/lib/prisma"; /** * Housekeeping table writes are retired. Runtime access uses ACL only. * Redirect editors to live Permissions. */ async function rejectLegacyHousekeepingWrite(): Promise { await requirePermission(PERMS.SETTINGS_EDIT); return redirectSafe( "/admin/permissions?from=housekeeping", "/admin/permissions", ); } export async function upsertPermission(_formData: FormData): Promise { return rejectLegacyHousekeepingWrite(); } export async function deletePermission(_formData: FormData): Promise { return rejectLegacyHousekeepingWrite(); } export async function bulkImportPermissions( _formData: FormData, ): Promise<{ count: number; errors: string[] }> { return rejectLegacyHousekeepingWrite(); } export async function exportPermissions(): Promise { await requirePermission(PERMS.SETTINGS_VIEW); const perms = await prisma.websiteHousekeepingPermissions.findMany({ orderBy: [{ groupName: "asc" }, { permission: "asc" }], select: { permission: true, minRank: true, description: true, groupName: true, dependsOn: true, }, }); return JSON.stringify(perms, null, 2); } export async function applyPreset(_formData: FormData): Promise { return rejectLegacyHousekeepingWrite(); } export async function clearAllPermissions(): Promise { return rejectLegacyHousekeepingWrite(); } export async function bulkDeletePermissions( _ids: bigint[], ): Promise<{ count: number }> { return rejectLegacyHousekeepingWrite(); }