package web import ( "strings" "code.crute.me/mcrute/go_ddns_manager/bind" "code.crute.me/mcrute/go_ddns_manager/dns" ) type ServerConfig struct { BindConfig *bind.BINDConfig DNSClient *dns.DNSClient AcmeView string DynamicDnsView string DDNSSecrets map[string]string `json:"DDNS"` AcmeSecrets map[string]map[string]int `json:"ACME"` } func (s *ServerConfig) GetDDNSZoneName(k string) string { v, _ := s.DDNSSecrets[k] return v } func (s *ServerConfig) AcmeSecretExists(k string) bool { _, ok := s.AcmeSecrets[k] return ok } func (s *ServerConfig) IsAcmeClientAllowed(key, zone string) bool { u, ok := s.AcmeSecrets[key] if !ok { return false } p, ok := u[zone] if ok && p == 1 { return true } p, ok = u[strings.TrimRight(zone, ".")] if ok && p == 1 { return true } return false }