grim/hgkeeper

8098dd6d3587
move KeysDir to a private variable in users.go
package access
type Acl struct {
Init []string `yaml:"init"`
Read []string `yaml:"read"`
Write []string `yaml:"write"`
}
func (a *Acl) Users() []string {
users := map[string]bool{}
for _, name := range a.Init {
users[name] = true
}
for _, name := range a.Read {
users[name] = true
}
for _, name := range a.Write {
users[name] = true
}
slice := make([]string, len(users))
idx := 0
for user, _ := range users {
slice[idx] = user
idx++
}
return slice
}
func (a *Acl) CanRead(username string) bool {
if a.CanWrite(username) || a.CanInit(username) {
return true
}
for _, user := range a.Read {
if user == username {
return true
}
}
return false
}
func (a *Acl) CanWrite(username string) bool {
if a.CanInit(username) {
return true
}
for _, user := range a.Write {
if user == username {
return true
}
}
return false
}
func (a *Acl) CanInit(username string) bool {
for _, user := range a.Init {
if user == username {
return true
}
}
return false
}