diff --git a/pro/controllers/tags.go b/pro/controllers/tags.go index bd65a46b..13cf76ee 100644 --- a/pro/controllers/tags.go +++ b/pro/controllers/tags.go @@ -288,6 +288,7 @@ func deleteTag(w http.ResponseWriter, r *http.Request) { go func() { proLogic.RemoveDeviceTagFromAclPolicies(tag.ID, tag.Network) proLogic.RemoveTagFromPostureChecks(tag.ID, tag.Network) + proLogic.RemoveTagFromNameservers(tag.ID, tag.Network) logic.RemoveTagFromEnrollmentKeys(tag.ID) mq.PublishPeerUpdate(false) }() diff --git a/pro/logic/dns.go b/pro/logic/dns.go index 31bd76da..16b4e69e 100644 --- a/pro/logic/dns.go +++ b/pro/logic/dns.go @@ -242,3 +242,23 @@ func GetNameserversForHost(h *schema.Host) (returnNsLi []models.Nameserver) { } return } + +func RemoveTagFromNameservers(tagID models.TagID, netID schema.NetworkID) error { + nameservers, err := (&schema.Nameserver{ + NetworkID: netID.String(), + }).ListByNetwork(db.WithContext(context.TODO())) + if err != nil { + return err + } + + var multiErr error + for _, nameserver := range nameservers { + delete(nameserver.Tags, tagID.String()) + err := nameserver.Update(db.WithContext(context.TODO())) + if err != nil { + multiErr = errors.Join(multiErr, err) + } + } + + return multiErr +}