statping/types/users/scopes.go

44 lines
804 B
Go

package users
import "strings"
type Scope string
const (
FullAdmin Scope = "admin"
ReadOnly Scope = "readonly"
RServices Scope = "read:services"
RWServices Scope = "write:services"
RIncidents Scope = "read:incidents"
RWIncidents Scope = "write:incidents"
EmptyUser Scope = "none"
)
func namedScope(name string) Scope {
switch name {
case "admin":
return FullAdmin
case "readonly":
return ReadOnly
case "read:services":
return RServices
case "write:services":
return RWServices
case "read:incidents":
return RIncidents
case "write:incidents":
return RWIncidents
default:
return EmptyUser
}
}
func (u *User) AllScopes() []Scope {
var scopes []Scope
for _, s := range strings.Split(u.Scopes, ",") {
scopes = append(scopes, namedScope(s))
}
return scopes
}