From 35fbb1625ecaff2bda8a68e21c94427d912bd7da Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 14 Jun 2020 23:12:42 +0200 Subject: [PATCH] Disallow removing SOA record --- htdocs/src/components/hResourceValueObject.vue | 2 +- model/zone.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/src/components/hResourceValueObject.vue b/htdocs/src/components/hResourceValueObject.vue index 5fec5b4..6b9babf 100644 --- a/htdocs/src/components/hResourceValueObject.vue +++ b/htdocs/src/components/hResourceValueObject.vue @@ -74,7 +74,7 @@ Save those modifications - + Delete diff --git a/model/zone.go b/model/zone.go index 5a575e4..09959e4 100644 --- a/model/zone.go +++ b/model/zone.go @@ -78,6 +78,10 @@ func (z *Zone) EraseService(subdomain string, origin string, id []byte, s *Servi for k, svc := range services { if bytes.Equal(svc.Id, id) { if s == nil { + // Disallow removing SOA + if subdomain == "" && svc.Type == "svcs.Origin" { + return errors.New("You cannot delete this service. It is mandatory.") + } z.Services[subdomain] = append(z.Services[subdomain][:k], z.Services[subdomain][k+1:]...) } else { s.Comment = s.GenComment(origin)