From b4cb7e6f5fce6e070c3b56fe403886b9c15c1aa0 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Mon, 11 May 2026 21:29:21 -0400 Subject: [PATCH] feat(templates): lock ParentTemplateId after creation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Template inheritance is set once at create time and immutable on update. UpdateTemplateAsync now returns "Parent template cannot be changed after creation." when the caller sends a parent that differs from the stored value — server-side enforcement covers UI, ManagementService, and CLI. TemplateEdit renders the parent as static plaintext rather than an editable dropdown; TemplateCreate's parent picker is unchanged. --- .../Pages/Design/TemplateEdit.razor | 12 ++--- .../TemplateService.cs | 22 ++------ .../TemplateServiceTests.cs | 51 ++++++++++++------- 3 files changed, 43 insertions(+), 42 deletions(-) diff --git a/src/ScadaLink.CentralUI/Components/Pages/Design/TemplateEdit.razor b/src/ScadaLink.CentralUI/Components/Pages/Design/TemplateEdit.razor index 1a14f48..6938ea3 100644 --- a/src/ScadaLink.CentralUI/Components/Pages/Design/TemplateEdit.razor +++ b/src/ScadaLink.CentralUI/Components/Pages/Design/TemplateEdit.razor @@ -212,13 +212,11 @@
- +
+ @(_selectedTemplate.ParentTemplateId is int pid + ? _templates.FirstOrDefault(t => t.Id == pid)?.Name ?? $"#{pid}" + : "(none)") +
diff --git a/src/ScadaLink.TemplateEngine/TemplateService.cs b/src/ScadaLink.TemplateEngine/TemplateService.cs index 48ced9d..28df3cd 100644 --- a/src/ScadaLink.TemplateEngine/TemplateService.cs +++ b/src/ScadaLink.TemplateEngine/TemplateService.cs @@ -83,28 +83,16 @@ public class TemplateService if (template == null) return Result