Added better notifications for users when templates are updated.

Added confirmation dialogs for destructive actions.
Other improvements/changes
When deleting rule templates, we now clean up all resource rules that were created from the template.
This commit is contained in:
Adrian Astles
2025-08-07 23:49:56 +08:00
parent 1574cbc5df
commit 16a88281bb
9 changed files with 257 additions and 49 deletions

View File

@@ -31,7 +31,26 @@ export async function deleteRuleTemplate(req: any, res: any) {
});
}
// Delete template rules first (due to foreign key constraint)
// Get all template rules for this template
const templateRulesToDelete = await db
.select({ ruleId: templateRules.ruleId })
.from(templateRules)
.where(eq(templateRules.templateId, templateId));
// Delete resource rules that reference these template rules first
if (templateRulesToDelete.length > 0) {
const { resourceRules } = await import("@server/db");
const templateRuleIds = templateRulesToDelete.map(rule => rule.ruleId);
// Delete all resource rules that reference any of the template rules
for (const ruleId of templateRuleIds) {
await db
.delete(resourceRules)
.where(eq(resourceRules.templateRuleId, ruleId));
}
}
// Delete template rules
await db
.delete(templateRules)
.where(eq(templateRules.templateId, templateId));