permissions

package
v0.0.0-...-a30b172 Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2022 License: MIT Imports: 8 Imported by: 40

Documentation

Index

Constants

View Source
const (
	// DiscordCacophonyServerGuildID is the Guild ID of the Cacophony Guild
	DiscordCacophonyServerGuildID = "435420687906111498"
	// DiscordCacophonyPatronRoleID is the Role ID of the Patron role on the Cacophony Guild
	DiscordCacophonyPatronRoleID = "578650002361155626"
)

Variables

View Source
var (
	// BotAdmin has Manage_Server permissions on the Bot Server
	BotAdmin = newCacophonyBotAdmin(
		DiscordCacophonyServerGuildID,
	)
	// Patron has the Patron Role on the Bot Server
	Patron = newCacophonyPatron(
		DiscordCacophonyServerGuildID,
		DiscordCacophonyPatronRoleID,
	)

	// CacoFileStorage has ability to use commands that store files
	CacoFileStorage = newCacophonyDefaultPermission(
		"CacoFileStorage",
		"cacophony:permission:storage",
	)
)
View Source
var (
	DiscordReadMessages = NewDiscordPermission(
		"Read Messages",
		discordgo.PermissionViewChannel,
	)
	DiscordSendMessages = NewDiscordPermission(
		"Send Messages",
		discordgo.PermissionSendMessages,
	)
	DiscordSendTTSMessages = NewDiscordPermission(
		"Send TTS Messages",
		discordgo.PermissionSendTTSMessages,
	)
	DiscordManageMessages = NewDiscordPermission(
		"Manage Messages",
		discordgo.PermissionManageMessages,
	)
	DiscordEmbedLinks = NewDiscordPermission(
		"Embed Links",
		discordgo.PermissionEmbedLinks,
	)
	DiscordAttachFiles = NewDiscordPermission(
		"Attach Files",
		discordgo.PermissionAttachFiles,
	)
	DiscordReadMessageHistory = NewDiscordPermission(
		"Read Message History",
		discordgo.PermissionReadMessageHistory,
	)
	DiscordMentionEveryone = NewDiscordPermission(
		"Mention Everyone",
		discordgo.PermissionMentionEveryone,
	)
	DiscordUseExternalEmojis = NewDiscordPermission(
		"Use External Emojis",
		discordgo.PermissionUseExternalEmojis,
	)

	DiscordVoiceConnect = NewDiscordPermission(
		"Voice Connect",
		discordgo.PermissionVoiceConnect,
	)
	DiscordVoiceSpeak = NewDiscordPermission(
		"Voice Speak",
		discordgo.PermissionVoiceSpeak,
	)
	DiscordVoiceMuteMembers = NewDiscordPermission(
		"Voice Mute Members",
		discordgo.PermissionVoiceMuteMembers,
	)
	DiscordVoiceDeafenMembers = NewDiscordPermission(
		"Voice Deafen Members",
		discordgo.PermissionVoiceDeafenMembers,
	)
	DiscordVoiceMoveMembers = NewDiscordPermission(
		"Voice Move Members",
		discordgo.PermissionVoiceMoveMembers,
	)
	DiscordVoiceUseVAD = NewDiscordPermission(
		"Voice Use VAD",
		discordgo.PermissionVoiceUseVAD,
	)

	DiscordChangeNickname = NewDiscordPermission(
		"Change Nickname",
		discordgo.PermissionChangeNickname,
	)
	DiscordManageNicknames = NewDiscordPermission(
		"Manage Nicknames",
		discordgo.PermissionManageNicknames,
	)
	DiscordManageRoles = NewDiscordPermission(
		"Manage Roles",
		discordgo.PermissionManageRoles,
	)
	DiscordManageWebhooks = NewDiscordPermission(
		"Manage Webhooks",
		discordgo.PermissionManageWebhooks,
	)
	DiscordManageEmojis = NewDiscordPermission(
		"Manage Emojis",
		discordgo.PermissionManageEmojis,
	)

	DiscordCreateInstantInvite = NewDiscordPermission(
		"Create Instant Invite",
		discordgo.PermissionCreateInstantInvite,
	)
	DiscordKickMembers = NewDiscordPermission(
		"Kick Members",
		discordgo.PermissionKickMembers,
	)
	DiscordBanMembers = NewDiscordPermission(
		"Ban Members",
		discordgo.PermissionBanMembers,
	)
	DiscordAdministrator = NewDiscordPermission(
		"Administrator",
		discordgo.PermissionAdministrator,
	)
	DiscordManageChannels = NewDiscordPermission(
		"Manage Channels",
		discordgo.PermissionManageChannels,
	)
	DiscordManageServer = NewDiscordPermission(
		"Manage Server",
		discordgo.PermissionManageServer,
	)
	DiscordAddReactions = NewDiscordPermission(
		"Add Reactions",
		discordgo.PermissionAddReactions,
	)
	DiscordViewAuditLogs = NewDiscordPermission(
		"View Audit Logs",
		discordgo.PermissionViewAuditLogs,
	)
)
View Source
var (
	DiscordChannelDM = newDiscordDM()
)

Functions

This section is empty.

Types

type AndModifier

type AndModifier struct {
	// contains filtered or unexported fields
}

func And

func And(
	firstPermission interfaces.Permission,
	secondPermission interfaces.Permission,
	additionalPermissions ...interfaces.Permission,
) *AndModifier

func (*AndModifier) Match

func (p *AndModifier) Match(state interfaces.State, db *gorm.DB, userID string, channelID string, dm bool, superUser bool) bool

func (*AndModifier) Name

func (p *AndModifier) Name() string

type CacophonyBotPermission

type CacophonyBotPermission struct {
	// contains filtered or unexported fields
}

func (*CacophonyBotPermission) Give

func (p *CacophonyBotPermission) Give(db *gorm.DB, userID string) error

func (*CacophonyBotPermission) Match

func (p *CacophonyBotPermission) Match(state interfaces.State, db *gorm.DB, userID string, channelID string, dm bool, superUser bool) bool

func (*CacophonyBotPermission) Name

func (p *CacophonyBotPermission) Name() string

func (*CacophonyBotPermission) Remove

func (p *CacophonyBotPermission) Remove(db *gorm.DB, userID string) error

type Discord

type Discord struct {
	// contains filtered or unexported fields
}

func NewDiscordPermission

func NewDiscordPermission(name string, id int64) *Discord

func (*Discord) Match

func (p *Discord) Match(
	state interfaces.State,
	db *gorm.DB,
	userID string,
	channelID string,
	dm bool,
	superUser bool,
) bool

func (*Discord) Name

func (p *Discord) Name() string

type DiscordDM

type DiscordDM struct {
}

func (*DiscordDM) Match

func (p *DiscordDM) Match(
	state interfaces.State,
	db *gorm.DB,
	userID string,
	channelID string,
	dm bool,
	superUser bool,
) bool

func (*DiscordDM) Name

func (p *DiscordDM) Name() string

type DiscordRole

type DiscordRole struct {
	// contains filtered or unexported fields
}

func NewDiscordRole

func NewDiscordRole(state interfaces.State, guildID, roleID string) *DiscordRole

func (*DiscordRole) Match

func (p *DiscordRole) Match(
	state interfaces.State,
	db *gorm.DB,
	userID string,
	channelID string,
	dm bool,
	superUser bool,
) bool

func (*DiscordRole) Name

func (p *DiscordRole) Name() string

type NotModifier

type NotModifier struct {
	// contains filtered or unexported fields
}

func Not

func Not(permission interfaces.Permission) *NotModifier

func (*NotModifier) Match

func (p *NotModifier) Match(
	state interfaces.State,
	db *gorm.DB,
	userID string,
	channelID string,
	dm bool,
	superUser bool,
) bool

func (*NotModifier) Name

func (p *NotModifier) Name() string

type OrModifier

type OrModifier struct {
	// contains filtered or unexported fields
}

func Or

func Or(
	firstPermission interfaces.Permission,
	secondPermission interfaces.Permission,
	additionalPermissions ...interfaces.Permission,
) *OrModifier

func (*OrModifier) Match

func (p *OrModifier) Match(
	state interfaces.State,
	db *gorm.DB,
	userID string,
	channelID string,
	dm bool,
	superUser bool,
) bool

func (*OrModifier) Name

func (p *OrModifier) Name() string

Jump to

Keyboard shortcuts

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