Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion bot/button/handlers/admindebug/server/blacklistreason.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,14 @@ func (h *AdminDebugServerBlacklistReasonHandler) Execute(ctx *context.ButtonCont
return
}

worker, err := utils.WorkerForGuild(ctx, ctx.Worker(), guildId)
if err != nil {
ctx.HandleError(err)
return
}

// Get guild to fetch owner ID
guild, err := ctx.Worker().GetGuild(guildId)
guild, err := worker.GetGuild(guildId)
if err != nil {
ctx.HandleError(err)
return
Expand Down
8 changes: 7 additions & 1 deletion bot/button/handlers/admindebug/server/entitlements.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,14 @@ func (h *AdminDebugServerEntitlementsHandler) Execute(ctx *context.ButtonContext
return
}

worker, err := utils.WorkerForGuild(ctx, ctx.Worker(), guildId)
if err != nil {
ctx.HandleError(err)
return
}

// Get guild to fetch owner ID
guild, err := ctx.Worker().GetGuild(guildId)
guild, err := worker.GetGuild(guildId)
if err != nil {
ctx.HandleError(err)
return
Expand Down
31 changes: 3 additions & 28 deletions bot/button/handlers/admindebug/server/modals/permissions.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,38 +82,13 @@ func (h *AdminDebugServerPermissionsModalSubmitHandler) Execute(ctx *context.Mod

selectedValues := selectData.Values

// Get guild and settings
botId, isWhitelabel, err := dbclient.Client.WhitelabelGuilds.GetBotByGuild(ctx, guildId)
worker, err := utils.WorkerForGuild(ctx, ctx.Worker(), guildId)
if err != nil {
ctx.HandleError(err)
return
}

var worker *w.Context
if isWhitelabel {
bot, err := dbclient.Client.Whitelabel.GetByBotId(ctx, botId)
if err != nil {
ctx.HandleError(err)
return
}

if bot.BotId == 0 {
ctx.HandleError(errors.New("bot not found"))
return
}

worker = &w.Context{
Token: bot.Token,
BotId: bot.BotId,
IsWhitelabel: true,
ShardId: 0,
Cache: ctx.Worker().Cache,
RateLimiter: nil,
}
} else {
worker = ctx.Worker()
}

// Get guild and settings
settings, err := dbclient.Client.Settings.Get(ctx, guildId)
if err != nil {
ctx.HandleError(err)
Expand All @@ -126,7 +101,7 @@ func (h *AdminDebugServerPermissionsModalSubmitHandler) Execute(ctx *context.Mod
return
}

botMember, err := worker.GetGuildMember(guildId, ctx.Worker().BotId)
botMember, err := worker.GetGuildMember(guildId, worker.BotId)
if err != nil {
ctx.HandleError(err)
return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/TicketsBot-cloud/database"
"github.com/TicketsBot-cloud/gdl/objects/interaction"
"github.com/TicketsBot-cloud/gdl/objects/interaction/component"
w "github.com/TicketsBot-cloud/worker"
"github.com/TicketsBot-cloud/worker/bot/button/registry"
"github.com/TicketsBot-cloud/worker/bot/button/registry/matcher"
"github.com/TicketsBot-cloud/worker/bot/command"
Expand Down Expand Up @@ -94,8 +95,14 @@ func (h *AdminDebugServerTicketPermissionsModalSubmitHandler) Execute(ctx *conte
return
}

worker, err := utils.WorkerForGuild(ctx, ctx.Worker(), guildId)
if err != nil {
ctx.HandleError(err)
return
}

// Get guild info
guild, err := ctx.Worker().GetGuild(guildId)
guild, err := worker.GetGuild(guildId)
if err != nil {
ctx.HandleError(err)
return
Expand Down Expand Up @@ -150,10 +157,10 @@ func (h *AdminDebugServerTicketPermissionsModalSubmitHandler) Execute(ctx *conte
}

if isUser {
result := checkUserTicketPermissions(ctx, guildId, guild.OwnerId, entityId, adminUsers, supportUsers, panels)
result := checkUserTicketPermissions(ctx, worker, guildId, guild.OwnerId, entityId, adminUsers, supportUsers, panels)
results = append(results, result)
} else {
result := checkRoleTicketPermissions(ctx, guildId, entityId, adminRoles, supportRoles, panels)
result := checkRoleTicketPermissions(ctx, worker, guildId, entityId, adminRoles, supportRoles, panels)
results = append(results, result)
}
}
Expand All @@ -173,7 +180,7 @@ func (h *AdminDebugServerTicketPermissionsModalSubmitHandler) Execute(ctx *conte
}))
}

func checkUserTicketPermissions(ctx *context.ModalContext, guildId, ownerId, userId uint64, adminUsers, supportUsers []uint64, panels []database.Panel) string {
func checkUserTicketPermissions(ctx *context.ModalContext, worker *w.Context, guildId, ownerId, userId uint64, adminUsers, supportUsers []uint64, panels []database.Panel) string {
var lines []string

// Ticket Permission Level
Expand All @@ -190,10 +197,10 @@ func checkUserTicketPermissions(ctx *context.ModalContext, guildId, ownerId, use
lines = append(lines, ticketPermLevel)

// Check member roles for role-based permissions
member, err := ctx.Worker().GetGuildMember(guildId, userId)
member, err := worker.GetGuildMember(guildId, userId)
if err == nil {
// Get all guild roles for name lookups
guildRoles, err := ctx.Worker().GetGuildRoles(guildId)
guildRoles, err := worker.GetGuildRoles(guildId)
roleMap := make(map[uint64]string)
if err == nil {
for _, role := range guildRoles {
Expand Down Expand Up @@ -300,11 +307,11 @@ func checkUserTicketPermissions(ctx *context.ModalContext, guildId, ownerId, use
return fmt.Sprintf("**User:** <@%d>\n%s", userId, strings.Join(lines, "\n"))
}

func checkRoleTicketPermissions(ctx *context.ModalContext, guildId, roleId uint64, adminRoles, supportRoles []uint64, panels []database.Panel) string {
func checkRoleTicketPermissions(ctx *context.ModalContext, worker *w.Context, guildId, roleId uint64, adminRoles, supportRoles []uint64, panels []database.Panel) string {
var lines []string

// Get role name
guildRoles, err := ctx.Worker().GetGuildRoles(guildId)
guildRoles, err := worker.GetGuildRoles(guildId)
roleName := "Unknown Role"
if err == nil {
for _, role := range guildRoles {
Expand Down
13 changes: 10 additions & 3 deletions bot/button/handlers/admindebug/server/modals/usertickets.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/TicketsBot-cloud/database"
"github.com/TicketsBot-cloud/gdl/objects/interaction"
"github.com/TicketsBot-cloud/gdl/objects/interaction/component"
w "github.com/TicketsBot-cloud/worker"
"github.com/TicketsBot-cloud/worker/bot/button/registry"
"github.com/TicketsBot-cloud/worker/bot/button/registry/matcher"
"github.com/TicketsBot-cloud/worker/bot/command"
Expand Down Expand Up @@ -93,6 +94,12 @@ func (h *AdminDebugServerUserTicketsModalSubmitHandler) Execute(ctx *context.Mod
return
}

worker, err := utils.WorkerForGuild(ctx, ctx.Worker(), guildId)
if err != nil {
ctx.HandleError(err)
return
}

// Get all open tickets for the guild
allOpenTickets, err := dbclient.Client.Tickets.GetGuildOpenTickets(ctx, guildId)
if err != nil {
Expand All @@ -104,7 +111,7 @@ func (h *AdminDebugServerUserTicketsModalSubmitHandler) Execute(ctx *context.Mod
var results []string

for _, userId := range userIds {
result := checkUserTickets(ctx, guildId, userId, allOpenTickets)
result := checkUserTickets(ctx, worker, guildId, userId, allOpenTickets)
results = append(results, result)
}

Expand All @@ -123,7 +130,7 @@ func (h *AdminDebugServerUserTicketsModalSubmitHandler) Execute(ctx *context.Mod
}))
}

func checkUserTickets(ctx *context.ModalContext, guildId, userId uint64, allOpenTickets []database.Ticket) string {
func checkUserTickets(ctx *context.ModalContext, worker *w.Context, guildId, userId uint64, allOpenTickets []database.Ticket) string {
var lines []string

// Get open ticket count
Expand Down Expand Up @@ -162,7 +169,7 @@ func checkUserTickets(ctx *context.ModalContext, guildId, userId uint64, allOpen
channelMention := fmt.Sprintf("`%d`", *ticket.ChannelId)

if ticket.ChannelId != nil {
_, err := ctx.Worker().GetChannel(*ticket.ChannelId)
_, err := worker.GetChannel(*ticket.ChannelId)
if err == nil {
channelExists = true
}
Expand Down
8 changes: 7 additions & 1 deletion bot/button/handlers/admindebug/server/monitoredbots.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,16 @@ func (h *AdminDebugServerMonitoredBotsHandler) Execute(ctx *context.ButtonContex
return
}

worker, err := utils.WorkerForGuild(ctx, ctx.Worker(), guildId)
if err != nil {
ctx.HandleError(err)
return
}

var monitoredBotsPresent []string

for _, botId := range config.Conf.Bot.MonitoredBots {
_, err = ctx.Worker().GetGuildMember(guildId, botId)
_, err = worker.GetGuildMember(guildId, botId)
if err == nil {
botUser, err := ctx.Worker().GetUser(botId)
if err == nil {
Expand Down
31 changes: 1 addition & 30 deletions bot/button/handlers/admindebug/server/recache.go
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
package server

import (
"errors"
"fmt"
"strconv"
"strings"
"time"

permcache "github.com/TicketsBot-cloud/common/permission"
"github.com/TicketsBot-cloud/gdl/objects/interaction/component"
w "github.com/TicketsBot-cloud/worker"
"github.com/TicketsBot-cloud/worker/bot/button/registry"
"github.com/TicketsBot-cloud/worker/bot/button/registry/matcher"
"github.com/TicketsBot-cloud/worker/bot/command"
"github.com/TicketsBot-cloud/worker/bot/command/context"
"github.com/TicketsBot-cloud/worker/bot/customisation"
"github.com/TicketsBot-cloud/worker/bot/dbclient"
"github.com/TicketsBot-cloud/worker/bot/redis"
"github.com/TicketsBot-cloud/worker/bot/utils"
)
Expand All @@ -38,7 +35,6 @@ func (h *AdminDebugServerRecacheHandler) Properties() registry.Properties {
}

func (h *AdminDebugServerRecacheHandler) Execute(ctx *context.ButtonContext) {

if !utils.IsBotHelper(ctx.UserId()) {
ctx.ReplyRaw(customisation.Red, "Error", "You do not have permission to use this button.")
}
Expand Down Expand Up @@ -66,37 +62,12 @@ func (h *AdminDebugServerRecacheHandler) Execute(ctx *context.ButtonContext) {
ctx.Worker().Cache.DeleteGuildChannels(ctx, guildId)
ctx.Worker().Cache.DeleteGuildRoles(ctx, guildId)

botId, isWhitelabel, err := dbclient.Client.WhitelabelGuilds.GetBotByGuild(ctx, guildId)
worker, err := utils.WorkerForGuild(ctx, ctx.Worker(), guildId)
if err != nil {
ctx.HandleError(err)
return
}

var worker *w.Context
if isWhitelabel {
bot, err := dbclient.Client.Whitelabel.GetByBotId(ctx, botId)
if err != nil {
ctx.HandleError(err)
return
}

if bot.BotId == 0 {
ctx.HandleError(errors.New("bot not found"))
return
}

worker = &w.Context{
Token: bot.Token,
BotId: bot.BotId,
IsWhitelabel: true,
ShardId: 0,
Cache: ctx.Worker().Cache,
RateLimiter: nil, // Use http-proxy ratelimit functionality
}
} else {
worker = ctx.Worker()
}

guild, err := worker.GetGuild(guildId)
if err != nil {
ctx.HandleError(err)
Expand Down
26 changes: 3 additions & 23 deletions bot/command/impl/admin/adminblacklist.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"github.com/TicketsBot-cloud/common/permission"
"github.com/TicketsBot-cloud/gdl/objects/interaction"
"github.com/TicketsBot-cloud/gdl/objects/interaction/component"
"github.com/TicketsBot-cloud/worker"
"github.com/TicketsBot-cloud/worker/bot/blacklist"
"github.com/TicketsBot-cloud/worker/bot/command"
"github.com/TicketsBot-cloud/worker/bot/command/registry"
Expand Down Expand Up @@ -75,35 +74,16 @@ func (AdminBlacklistCommand) Execute(ctx registry.CommandContext, guildIdRaw str
}

// Check for whitelabel
botId, isWhitelabel, err := dbclient.Client.WhitelabelGuilds.GetBotByGuild(ctx, guildId)
worker, err := utils.WorkerForGuild(ctx, ctx.Worker(), guildId)
if err != nil {
ctx.HandleError(err)
return
}

var w *worker.Context
if isWhitelabel {
bot, err := dbclient.Client.Whitelabel.GetByBotId(ctx, botId)
if err != nil {
ctx.HandleError(err)
return
}

w = &worker.Context{
Token: bot.Token,
BotId: bot.BotId,
IsWhitelabel: true,
Cache: ctx.Worker().Cache,
RateLimiter: nil, // Use http-proxy ratelimit functionality
}
} else {
w = ctx.Worker()
}

// Try to get owner
var ownerId *uint64
var botInGuild bool
guild, err := w.GetGuild(guildId)
guild, err := worker.GetGuild(guildId)
if err == nil {
ownerId = &guild.OwnerId
botInGuild = true
Expand Down Expand Up @@ -142,7 +122,7 @@ func (AdminBlacklistCommand) Execute(ctx registry.CommandContext, guildIdRaw str

// Leave guild
if botInGuild {
if err := w.LeaveGuild(guildId); err != nil {
if err := worker.LeaveGuild(guildId); err != nil {
ctx.HandleError(err)
return
}
Expand Down
Loading