diff options
author | 2024-10-05 20:37:30 -0700 | |
---|---|---|
committer | 2024-10-05 21:21:12 -0700 | |
commit | e555e442fba0a9ca3c8cf67444e8c42f79db359a (patch) | |
tree | e7ee91ff4842ef23569833e0443be91545d4c42e /internal/validator/validator.go | |
parent | 600dea6ce54989a792e666a0a26de0ee847e4562 (diff) | |
download | v2-e555e442fba0a9ca3c8cf67444e8c42f79db359a.tar.gz v2-e555e442fba0a9ca3c8cf67444e8c42f79db359a.tar.zst v2-e555e442fba0a9ca3c8cf67444e8c42f79db359a.zip |
feat: add new settings option to allow external fonts
Diffstat (limited to 'internal/validator/validator.go')
-rw-r--r-- | internal/validator/validator.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/internal/validator/validator.go b/internal/validator/validator.go index 63fe75f0..9b3cfd90 100644 --- a/internal/validator/validator.go +++ b/internal/validator/validator.go @@ -7,8 +7,11 @@ import ( "fmt" "net/url" "regexp" + "strings" ) +var domainRegex = regexp.MustCompile(`^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$`) + // ValidateRange makes sure the offset/limit values are valid. func ValidateRange(offset, limit int) error { if offset < 0 { @@ -43,3 +46,24 @@ func IsValidURL(absoluteURL string) bool { _, err := url.ParseRequestURI(absoluteURL) return err == nil } + +func IsValidDomain(domain string) bool { + domain = strings.ToLower(domain) + + if len(domain) < 1 || len(domain) > 253 { + return false + } + + return domainRegex.MatchString(domain) +} + +func IsValidDomainList(value string) bool { + domains := strings.Split(strings.TrimSpace(value), " ") + for _, domain := range domains { + if !IsValidDomain(domain) { + return false + } + } + + return true +} |