Archived
1
0
This repository has been archived on 2023-08-12. You can view files and clone it, but cannot push or open issues or pull requests.
nntpchan/contrib/backends/srndv2/src/srnd/policy.go
2017-09-26 09:38:05 -04:00

40 lines
577 B
Go

//
// policy.go
//
package srnd
import (
"regexp"
"strings"
)
type FeedPolicy struct {
rules map[string]string
}
// do we allow this newsgroup?
func (self *FeedPolicy) AllowsNewsgroup(newsgroup string) (result bool) {
var k, v string
var allows int
for k, v = range self.rules {
v = strings.Trim(v, " ")
match, err := regexp.MatchString(k, newsgroup)
if err == nil {
if match {
if v == "1" {
allows++
} else if v == "0" {
return false
}
}
}
}
if len(self.rules) > 0 {
result = allows > 0
} else {
result = true
}
return
}