Files
webdav/user.go
T
Henrique Dias 5239649127 feat: allow no auth
License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>
2019-05-12 16:29:36 +01:00

40 lines
612 B
Go

package webdav
import (
"strings"
"golang.org/x/net/webdav"
)
// User contains the settings of each user.
type User struct {
Username string
Password string
Scope string
Modify bool
Rules []*Rule
Handler *webdav.Handler
}
// Allowed checks if the user has permission to access a directory/file
func (u User) Allowed(url string) bool {
var rule *Rule
i := len(u.Rules) - 1
for i >= 0 {
rule = u.Rules[i]
if rule.Regex {
if rule.Regexp.MatchString(url) {
return rule.Allow
}
} else if strings.HasPrefix(url, rule.Path) {
return rule.Allow
}
i--
}
return true
}