Disable /open
This commit is contained in:
parent
d35ae1f243
commit
696d09ddb8
@ -56,7 +56,7 @@ func GetGuilds(ctx *gin.Context) {
|
|||||||
fakeGuild := guild.Guild{
|
fakeGuild := guild.Guild{
|
||||||
Id: g.GuildId,
|
Id: g.GuildId,
|
||||||
Owner: g.Owner,
|
Owner: g.Owner,
|
||||||
Permissions: uint64(g.UserPermissions),
|
Permissions: g.UserPermissions,
|
||||||
}
|
}
|
||||||
|
|
||||||
if g.Owner {
|
if g.Owner {
|
||||||
|
@ -1,11 +1,17 @@
|
|||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
"github.com/TicketsBot/GoPanel/botcontext"
|
||||||
dbclient "github.com/TicketsBot/GoPanel/database"
|
dbclient "github.com/TicketsBot/GoPanel/database"
|
||||||
"github.com/TicketsBot/GoPanel/rpc/cache"
|
"github.com/TicketsBot/GoPanel/rpc/cache"
|
||||||
"github.com/TicketsBot/database"
|
"github.com/TicketsBot/database"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/rxdn/gdl/objects/channel"
|
"github.com/rxdn/gdl/objects/channel"
|
||||||
|
"github.com/rxdn/gdl/objects/interaction"
|
||||||
|
"github.com/rxdn/gdl/rest"
|
||||||
|
"golang.org/x/sync/errgroup"
|
||||||
)
|
)
|
||||||
|
|
||||||
func UpdateSettingsHandler(ctx *gin.Context) {
|
func UpdateSettingsHandler(ctx *gin.Context) {
|
||||||
@ -24,7 +30,7 @@ func UpdateSettingsHandler(ctx *gin.Context) {
|
|||||||
channels := cache.Instance.GetGuildChannels(guildId)
|
channels := cache.Instance.GetGuildChannels(guildId)
|
||||||
|
|
||||||
// TODO: Errors
|
// TODO: Errors
|
||||||
settings.updateSettings(guildId)
|
err := settings.updateSettings(guildId)
|
||||||
validPrefix := settings.updatePrefix(guildId)
|
validPrefix := settings.updatePrefix(guildId)
|
||||||
validWelcomeMessage := settings.updateWelcomeMessage(guildId)
|
validWelcomeMessage := settings.updateWelcomeMessage(guildId)
|
||||||
validTicketLimit := settings.updateTicketLimit(guildId)
|
validTicketLimit := settings.updateTicketLimit(guildId)
|
||||||
@ -43,12 +49,62 @@ func UpdateSettingsHandler(ctx *gin.Context) {
|
|||||||
"archive_channel": validArchiveChannel,
|
"archive_channel": validArchiveChannel,
|
||||||
"category": validCategory,
|
"category": validCategory,
|
||||||
"naming_scheme": validNamingScheme,
|
"naming_scheme": validNamingScheme,
|
||||||
|
"error": err,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Return error
|
func (s *Settings) updateSettings(guildId uint64) error {
|
||||||
func (s *Settings) updateSettings(guildId uint64) {
|
group, _ := errgroup.WithContext(context.Background())
|
||||||
go dbclient.Client.Settings.Set(guildId, s.Settings)
|
|
||||||
|
group.Go(func() error {
|
||||||
|
return dbclient.Client.Settings.Set(guildId, s.Settings)
|
||||||
|
})
|
||||||
|
|
||||||
|
group.Go(func() error {
|
||||||
|
return setOpenCommandPermissions(guildId, s.DisableOpenCommand)
|
||||||
|
})
|
||||||
|
|
||||||
|
return group.Wait()
|
||||||
|
}
|
||||||
|
|
||||||
|
func setOpenCommandPermissions(guildId uint64, disabled bool) error {
|
||||||
|
ctx, err := botcontext.ContextForGuild(guildId)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
commands, err := rest.GetGlobalCommands(ctx.Token, ctx.RateLimiter, ctx.BotId)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var commandId uint64
|
||||||
|
for _, cmd := range commands {
|
||||||
|
if cmd.Name == "open" {
|
||||||
|
commandId = cmd.Id
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if commandId == 0 {
|
||||||
|
return errors.New("open command not found")
|
||||||
|
}
|
||||||
|
|
||||||
|
data := rest.CommandWithPermissionsData{
|
||||||
|
Id: commandId,
|
||||||
|
ApplicationId: ctx.BotId,
|
||||||
|
GuildId: guildId,
|
||||||
|
Permissions: []interaction.ApplicationCommandPermissions{
|
||||||
|
{
|
||||||
|
Id: guildId,
|
||||||
|
Type: interaction.ApplicationCommandPermissionTypeRole,
|
||||||
|
Permission: !disabled,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = rest.EditCommandPermissions(ctx.Token, ctx.RateLimiter, ctx.BotId, guildId, commandId, data)
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Settings) updatePrefix(guildId uint64) bool {
|
func (s *Settings) updatePrefix(guildId uint64) bool {
|
||||||
@ -113,6 +169,7 @@ func (s *Settings) updateArchiveChannel(channels []channel.Channel, guildId uint
|
|||||||
}
|
}
|
||||||
|
|
||||||
var validScheme = []database.NamingScheme{database.Id, database.Username}
|
var validScheme = []database.NamingScheme{database.Id, database.Username}
|
||||||
|
|
||||||
func (s *Settings) updateNamingScheme(guildId uint64) bool {
|
func (s *Settings) updateNamingScheme(guildId uint64) bool {
|
||||||
var valid bool
|
var valid bool
|
||||||
for _, scheme := range validScheme {
|
for _, scheme := range validScheme {
|
||||||
@ -142,7 +199,6 @@ func (s *Settings) updateCloseConfirmation(guildId uint64) {
|
|||||||
go dbclient.Client.CloseConfirmation.Set(guildId, s.CloseConfirmation)
|
go dbclient.Client.CloseConfirmation.Set(guildId, s.CloseConfirmation)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (s *Settings) updateFeedbackEnabled(guildId uint64) {
|
func (s *Settings) updateFeedbackEnabled(guildId uint64) {
|
||||||
go dbclient.Client.FeedbackEnabled.Set(guildId, s.FeedbackEnabled)
|
go dbclient.Client.FeedbackEnabled.Set(guildId, s.FeedbackEnabled)
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type BotContext struct {
|
type BotContext struct {
|
||||||
|
BotId uint64
|
||||||
Token string
|
Token string
|
||||||
RateLimiter *ratelimit.Ratelimiter
|
RateLimiter *ratelimit.Ratelimiter
|
||||||
}
|
}
|
||||||
@ -113,7 +114,6 @@ func (ctx BotContext) SearchMembers(guildId uint64, query string) (members []mem
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (ctx BotContext) ListMembers(guildId uint64) (members []member.Member, err error) {
|
func (ctx BotContext) ListMembers(guildId uint64) (members []member.Member, err error) {
|
||||||
data := rest.ListGuildMembersData{
|
data := rest.ListGuildMembersData{
|
||||||
Limit: 100,
|
Limit: 100,
|
||||||
|
@ -22,9 +22,11 @@ func ContextForGuild(guildId uint64) (ctx BotContext, err error) {
|
|||||||
return ctx, err
|
return ctx, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctx.BotId = res.BotId
|
||||||
ctx.Token = res.Token
|
ctx.Token = res.Token
|
||||||
keyPrefix = fmt.Sprintf("ratelimiter:%d", whitelabelBotId)
|
keyPrefix = fmt.Sprintf("ratelimiter:%d", whitelabelBotId)
|
||||||
} else {
|
} else {
|
||||||
|
ctx.BotId = config.Conf.Bot.Id
|
||||||
ctx.Token = config.Conf.Bot.Token
|
ctx.Token = config.Conf.Bot.Token
|
||||||
keyPrefix = "ratelimiter:public"
|
keyPrefix = "ratelimiter:public"
|
||||||
}
|
}
|
||||||
|
@ -53,6 +53,7 @@ type (
|
|||||||
}
|
}
|
||||||
|
|
||||||
Bot struct {
|
Bot struct {
|
||||||
|
Id uint64
|
||||||
Token string
|
Token string
|
||||||
PremiumLookupProxyUrl string `toml:"premium-lookup-proxy-url"`
|
PremiumLookupProxyUrl string `toml:"premium-lookup-proxy-url"`
|
||||||
PremiumLookupProxyKey string `toml:"premium-lookup-proxy-key"`
|
PremiumLookupProxyKey string `toml:"premium-lookup-proxy-key"`
|
||||||
@ -119,6 +120,7 @@ func fromEnvvar() {
|
|||||||
rateLimitMax, _ := strconv.Atoi(os.Getenv("RATELIMIT_MAX"))
|
rateLimitMax, _ := strconv.Atoi(os.Getenv("RATELIMIT_MAX"))
|
||||||
sessionThreads, _ := strconv.Atoi(os.Getenv("SESSION_DB_THREADS"))
|
sessionThreads, _ := strconv.Atoi(os.Getenv("SESSION_DB_THREADS"))
|
||||||
oauthId, _ := strconv.ParseUint(os.Getenv("OAUTH_ID"), 10, 64)
|
oauthId, _ := strconv.ParseUint(os.Getenv("OAUTH_ID"), 10, 64)
|
||||||
|
botId, _ := strconv.ParseUint(os.Getenv("BOT_ID"), 10, 64)
|
||||||
redisPort, _ := strconv.Atoi(os.Getenv("REDIS_PORT"))
|
redisPort, _ := strconv.Atoi(os.Getenv("REDIS_PORT"))
|
||||||
redisThreads, _ := strconv.Atoi(os.Getenv("REDIS_THREADS"))
|
redisThreads, _ := strconv.Atoi(os.Getenv("REDIS_THREADS"))
|
||||||
|
|
||||||
@ -151,6 +153,7 @@ func fromEnvvar() {
|
|||||||
Uri: os.Getenv("DATABASE_URI"),
|
Uri: os.Getenv("DATABASE_URI"),
|
||||||
},
|
},
|
||||||
Bot: Bot{
|
Bot: Bot{
|
||||||
|
Id: botId,
|
||||||
Token: os.Getenv("BOT_TOKEN"),
|
Token: os.Getenv("BOT_TOKEN"),
|
||||||
PremiumLookupProxyUrl: os.Getenv("PREMIUM_PROXY_URL"),
|
PremiumLookupProxyUrl: os.Getenv("PREMIUM_PROXY_URL"),
|
||||||
PremiumLookupProxyKey: os.Getenv("PREMIUM_PROXY_KEY"),
|
PremiumLookupProxyKey: os.Getenv("PREMIUM_PROXY_KEY"),
|
||||||
|
@ -33,3 +33,4 @@
|
|||||||
- REDIS_THREADS
|
- REDIS_THREADS
|
||||||
- CACHE_URI
|
- CACHE_URI
|
||||||
- TRUSTED_PROXIES
|
- TRUSTED_PROXIES
|
||||||
|
- BOT_ID
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
<NamingScheme col4=true bind:value={data.naming_scheme}/>
|
<NamingScheme col4=true bind:value={data.naming_scheme}/>
|
||||||
<Checkbox label="Enable User Feedback" col4=true bind:value={data.feedback_enabled}/>
|
<Checkbox label="Enable User Feedback" col4=true bind:value={data.feedback_enabled}/>
|
||||||
<Checkbox label="Hide Claim Button" col4=true bind:value={data.hide_claim_button}/>
|
<Checkbox label="Hide Claim Button" col4=true bind:value={data.hide_claim_button}/>
|
||||||
|
<Checkbox label="Disable /open Command" col4=true bind:value={data.disable_open_command}/>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-1">
|
<div class="col-1">
|
||||||
|
2
go.mod
2
go.mod
@ -6,7 +6,7 @@ require (
|
|||||||
github.com/BurntSushi/toml v0.3.1
|
github.com/BurntSushi/toml v0.3.1
|
||||||
github.com/TicketsBot/archiverclient v0.0.0-20210220155137-a562b2f1bbbb
|
github.com/TicketsBot/archiverclient v0.0.0-20210220155137-a562b2f1bbbb
|
||||||
github.com/TicketsBot/common v0.0.0-20210727134627-35eb7ed03a44
|
github.com/TicketsBot/common v0.0.0-20210727134627-35eb7ed03a44
|
||||||
github.com/TicketsBot/database v0.0.0-20210801121328-1e2e1c5e3346
|
github.com/TicketsBot/database v0.0.0-20210808170243-bcb4f117ed18
|
||||||
github.com/TicketsBot/worker v0.0.0-20210727130432-3df3cd1246a3
|
github.com/TicketsBot/worker v0.0.0-20210727130432-3df3cd1246a3
|
||||||
github.com/apex/log v1.1.2
|
github.com/apex/log v1.1.2
|
||||||
github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect
|
github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect
|
||||||
|
Loading…
x
Reference in New Issue
Block a user