nip29

package
v0.30.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2024 License: MIT Imports: 3 Imported by: 1

Documentation

Index

Constants

View Source
const JoinRequestKind = nostr.KindSimpleGroupJoinRequest

Variables

View Source
var MetadataEventKinds = KindRange{
	nostr.KindSimpleGroupMetadata,
	nostr.KindSimpleGroupAdmins,
	nostr.KindSimpleGroupMembers,
}
View Source
var ModerationEventKinds = KindRange{
	nostr.KindSimpleGroupAddUser,
	nostr.KindSimpleGroupRemoveUser,
	nostr.KindSimpleGroupEditMetadata,
	nostr.KindSimpleGroupAddPermission,
	nostr.KindSimpleGroupRemovePermission,
	nostr.KindSimpleGroupDeleteEvent,
	nostr.KindSimpleGroupEditGroupStatus,
}

Functions

This section is empty.

Types

type Group

type Group struct {
	ID      string
	Name    string
	Picture string
	About   string
	Members map[string]*Role
	Private bool
	Closed  bool

	LastMetadataUpdate nostr.Timestamp
	LastAdminsUpdate   nostr.Timestamp
	LastMembersUpdate  nostr.Timestamp
}

func NewGroup

func NewGroup(id string) Group

func (*Group) MergeInAdminsEvent

func (group *Group) MergeInAdminsEvent(evt *nostr.Event) error

func (*Group) MergeInMembersEvent

func (group *Group) MergeInMembersEvent(evt *nostr.Event) error

func (*Group) MergeInMetadataEvent

func (group *Group) MergeInMetadataEvent(evt *nostr.Event) error

func (Group) ToAdminsEvent

func (group Group) ToAdminsEvent() *nostr.Event

func (Group) ToMembersEvent

func (group Group) ToMembersEvent() *nostr.Event

func (Group) ToMetadataEvent

func (group Group) ToMetadataEvent() *nostr.Event

type KindRange

type KindRange []int

func (KindRange) Includes

func (kr KindRange) Includes(kind int) bool

type Permission

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 Role

type Role struct {
	Name        string
	Permissions map[Permission]struct{}
}
var (
	// used for normal members without admin powers
	EmptyRole *Role = nil

	PermissionsMap = map[Permission]struct{}{
		PermAddUser:          {},
		PermEditMetadata:     {},
		PermDeleteEvent:      {},
		PermRemoveUser:       {},
		PermAddPermission:    {},
		PermRemovePermission: {},
		PermEditGroupStatus:  {},
	}
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL