33 lines
693 B
Go
33 lines
693 B
Go
package rbac
|
|
|
|
import (
|
|
"encoding/json"
|
|
"sort"
|
|
)
|
|
|
|
const (
|
|
DashboardRead = "dashboard:read"
|
|
AlertsRead = "alerts:read"
|
|
AlertsHandle = "alerts:handle"
|
|
EventsRead = "events:read"
|
|
RulesRead = "rules:read"
|
|
RulesWrite = "rules:write"
|
|
UsersRead = "users:read"
|
|
UsersWrite = "users:write"
|
|
AuditRead = "audit:read"
|
|
SyntheticWrite = "synthetic:write"
|
|
)
|
|
|
|
type Set map[string]struct{}
|
|
|
|
func (s Set) Has(permission string) bool { _, ok := s[permission]; return ok }
|
|
|
|
func (s Set) MarshalJSON() ([]byte, error) {
|
|
values := make([]string, 0, len(s))
|
|
for value := range s {
|
|
values = append(values, value)
|
|
}
|
|
sort.Strings(values)
|
|
return json.Marshal(values)
|
|
}
|