Skip to content

Commit 7c1bb97

Browse files
committed
add permission checks to report actions
1 parent a97fd0a commit 7c1bb97

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

dbot/commands/report_components.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
202202
value := e.StringSelectMenuInteractionData().Values[0]
203203
switch value {
204204
case "delete-message":
205+
if e.Member().Permissions.Missing(discord.PermissionManageMessages) {
206+
return e.CreateMessage(discord.MessageCreate{
207+
Content: "You need the `Manage Messages` permission to use this action.",
208+
Flags: discord.MessageFlagEphemeral,
209+
})
210+
}
205211
if err = b.Client.Rest().DeleteMessage(snowflake.MustParse(report.ChannelID), snowflake.MustParse(report.MessageID), rest.WithReason(reason)); err != nil {
206212
b.Logger.Errorf("Failed to delete message: %s", err)
207213
content = "Failed to delete message, please reach out to a bot developer."
@@ -252,6 +258,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
252258
}
253259

254260
case "timeout":
261+
if e.Member().Permissions.Missing(discord.PermissionModerateMembers) {
262+
return e.CreateMessage(discord.MessageCreate{
263+
Content: "You need the `Moderate Members` permission to use this action.",
264+
Flags: discord.MessageFlagEphemeral,
265+
})
266+
}
255267
return e.CreateModal(discord.ModalCreate{
256268
CustomID: fmt.Sprintf("handler:report-action-confirm:timeout:%s", report.UserID),
257269
Title: "Timeout User",
@@ -281,6 +293,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
281293
})
282294

283295
case "kick":
296+
if e.Member().Permissions.Missing(discord.PermissionKickMembers) {
297+
return e.CreateMessage(discord.MessageCreate{
298+
Content: "You need the `Kick Members` permission to use this action.",
299+
Flags: discord.MessageFlagEphemeral,
300+
})
301+
}
284302
return e.CreateModal(discord.ModalCreate{
285303
CustomID: fmt.Sprintf("handler:report-action-confirm:kick:%s", report.UserID),
286304
Title: "Kick User",
@@ -299,6 +317,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
299317
})
300318

301319
case "ban":
320+
if e.Member().Permissions.Missing(discord.PermissionBanMembers) {
321+
return e.CreateMessage(discord.MessageCreate{
322+
Content: "You need the `Ban Members` permission to use this action.",
323+
Flags: discord.MessageFlagEphemeral,
324+
})
325+
}
302326
return e.CreateModal(discord.ModalCreate{
303327
CustomID: fmt.Sprintf("handler:report-action-confirm:ban:%s", report.UserID),
304328
Title: "Ban User",

0 commit comments

Comments
 (0)