"use server"; import { asc } from "drizzle-orm"; import { requirePermission } from "@/lib/admin/guard"; import { db, WebsiteHousekeepingPermissions } from "@/lib/db"; import { redirectSafe } from "@/lib/foundation/security"; import { PERMS } from "@/lib/permissions"; /** * 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 exportPermissions(): Promise { await requirePermission(PERMS.SETTINGS_VIEW); const perms = await db .select({ permission: WebsiteHousekeepingPermissions.permission, minRank: WebsiteHousekeepingPermissions.minRank, description: WebsiteHousekeepingPermissions.description, groupName: WebsiteHousekeepingPermissions.groupName, dependsOn: WebsiteHousekeepingPermissions.dependsOn, }) .from(WebsiteHousekeepingPermissions) .orderBy( asc(WebsiteHousekeepingPermissions.groupName), asc(WebsiteHousekeepingPermissions.permission), ); return JSON.stringify(perms, null, 2); } export async function applyPreset(_formData: FormData): Promise { return rejectLegacyHousekeepingWrite(); }