Files
nostrlib/nip29/nip29.go
T

40 lines
911 B
Go

package nip29
import (
"github.com/nbd-wtf/go-nostr"
"golang.org/x/exp/maps"
"golang.org/x/exp/slices"
)
type Role struct {
Name string
Permissions map[Permission]struct{}
}
type Permission string
const (
PermAddUser Permission = "add-user"
PermEditMetadata Permission = "edit-metadata"
PermDeleteEvent Permission = "delete-event"
PermRemoveUser Permission = "remove-user"
PermAddPermission Permission = "add-permission"
PermRemovePermission Permission = "remove-permission"
PermEditGroupStatus Permission = "edit-group-status"
)
type KindRange []int
var ModerationEventKinds = KindRange(maps.Keys(moderationActionFactories))
var MetadataEventKinds = KindRange{
nostr.KindSimpleGroupMetadata,
nostr.KindSimpleGroupAdmins,
nostr.KindSimpleGroupMembers,
}
func (kr KindRange) Includes(kind int) bool {
_, ok := slices.BinarySearch(kr, kind)
return ok
}