diff --git a/app/http/endpoints/api/autoclose/autoclosepost.go b/app/http/endpoints/api/autoclose/autoclosepost.go index e42d435..63ce6d3 100644 --- a/app/http/endpoints/api/autoclose/autoclosepost.go +++ b/app/http/endpoints/api/autoclose/autoclosepost.go @@ -31,7 +31,11 @@ func PostAutoClose(ctx *gin.Context) { return } - premiumTier := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + premiumTier, err := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + if err != nil { + ctx.JSON(500, utils.ErrorJson(err)) + return + } if premiumTier < premium.Premium { settings.SinceOpenWithNoResponse = nil diff --git a/app/http/endpoints/api/panel/multipanelcreate.go b/app/http/endpoints/api/panel/multipanelcreate.go index 45d1c17..c12f481 100644 --- a/app/http/endpoints/api/panel/multipanelcreate.go +++ b/app/http/endpoints/api/panel/multipanelcreate.go @@ -56,7 +56,12 @@ func MultiPanelCreate(ctx *gin.Context) { } // get premium status - premiumTier := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + premiumTier, err := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + if err != nil { + ctx.JSON(500, utils.ErrorJson(err)) + return + } + messageId, err := data.sendEmbed(&botContext, premiumTier > premium.None, panels) if err != nil { diff --git a/app/http/endpoints/api/panel/multipanelupdate.go b/app/http/endpoints/api/panel/multipanelupdate.go index 6e0eb1f..3d529e0 100644 --- a/app/http/endpoints/api/panel/multipanelupdate.go +++ b/app/http/endpoints/api/panel/multipanelupdate.go @@ -84,7 +84,11 @@ func MultiPanelUpdate(ctx *gin.Context) { } // get premium status - premiumTier := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + premiumTier, err := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + if err != nil { + ctx.JSON(500, utils.ErrorJson(err)) + return + } // send new message messageId, err := data.sendEmbed(&botContext, premiumTier > premium.None, panels) diff --git a/app/http/endpoints/api/panel/panelcreate.go b/app/http/endpoints/api/panel/panelcreate.go index 665c123..68861a8 100644 --- a/app/http/endpoints/api/panel/panelcreate.go +++ b/app/http/endpoints/api/panel/panelcreate.go @@ -68,7 +68,11 @@ func CreatePanel(ctx *gin.Context) { data.MessageId = 0 // Check panel quota - premiumTier := rpc.PremiumClient.GetTierByGuildId(guildId, false, botContext.Token, botContext.RateLimiter) + premiumTier, err := rpc.PremiumClient.GetTierByGuildId(guildId, false, botContext.Token, botContext.RateLimiter) + if err != nil { + ctx.JSON(500, utils.ErrorJson(err)) + return + } if premiumTier == premium.None { panels, err := dbclient.Client.Panel.GetByGuild(guildId) diff --git a/app/http/endpoints/api/panel/panelupdate.go b/app/http/endpoints/api/panel/panelupdate.go index 56d3ed9..8ec7f16 100644 --- a/app/http/endpoints/api/panel/panelupdate.go +++ b/app/http/endpoints/api/panel/panelupdate.go @@ -64,7 +64,11 @@ func UpdatePanel(ctx *gin.Context) { return } - premiumTier := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + premiumTier, err := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + if err != nil { + ctx.JSON(500, utils.ErrorJson(err)) + return + } for _, multiPanel := range multiPanels { panels, err := dbclient.Client.MultiPanelTargets.GetPanels(multiPanel.Id) diff --git a/app/http/endpoints/api/premium.go b/app/http/endpoints/api/premium.go index 0d2f9a2..310ecaf 100644 --- a/app/http/endpoints/api/premium.go +++ b/app/http/endpoints/api/premium.go @@ -3,6 +3,7 @@ package api import ( "github.com/TicketsBot/GoPanel/botcontext" "github.com/TicketsBot/GoPanel/rpc" + "github.com/TicketsBot/GoPanel/utils" "github.com/TicketsBot/common/premium" "github.com/gin-gonic/gin" ) @@ -19,7 +20,11 @@ func PremiumHandler(ctx *gin.Context) { return } - premiumTier := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + premiumTier, err := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + if err != nil { + ctx.JSON(500, utils.ErrorJson(err)) + return + } ctx.JSON(200, gin.H{ "premium": premiumTier >= premium.Premium, diff --git a/app/http/endpoints/api/ticket/sendmessage.go b/app/http/endpoints/api/ticket/sendmessage.go index 2d8e11b..54846ba 100644 --- a/app/http/endpoints/api/ticket/sendmessage.go +++ b/app/http/endpoints/api/ticket/sendmessage.go @@ -7,6 +7,7 @@ import ( "github.com/TicketsBot/GoPanel/database" "github.com/TicketsBot/GoPanel/rpc" "github.com/TicketsBot/GoPanel/rpc/cache" + "github.com/TicketsBot/GoPanel/utils" "github.com/TicketsBot/common/premium" "github.com/gin-gonic/gin" "github.com/rxdn/gdl/rest" @@ -59,7 +60,12 @@ func SendMessage(ctx *gin.Context) { } // Verify guild is premium - premiumTier := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + premiumTier, err := rpc.PremiumClient.GetTierByGuildId(guildId, true, botContext.Token, botContext.RateLimiter) + if err != nil { + ctx.JSON(500, utils.ErrorJson(err)) + return + } + if premiumTier == premium.None { ctx.AbortWithStatusJSON(402, gin.H{ "success": false, diff --git a/app/http/endpoints/root/webchatws.go b/app/http/endpoints/root/webchatws.go index 7ac6a46..d188e9d 100644 --- a/app/http/endpoints/root/webchatws.go +++ b/app/http/endpoints/root/webchatws.go @@ -177,7 +177,12 @@ func WebChatWs(ctx *gin.Context) { } // Verify the guild is premium - premiumTier := rpc.PremiumClient.GetTierByGuildId(authData.GuildId, true, botContext.Token, botContext.RateLimiter) + premiumTier, err := rpc.PremiumClient.GetTierByGuildId(authData.GuildId, true, botContext.Token, botContext.RateLimiter) + if err != nil { + ctx.JSON(500, utils.ErrorJson(err)) + return + } + if premiumTier == premium.None { fmt.Println(4) conn.Close() diff --git a/app/http/middleware/verifywhitelabel.go b/app/http/middleware/verifywhitelabel.go index 8b2032e..a2ba3fd 100644 --- a/app/http/middleware/verifywhitelabel.go +++ b/app/http/middleware/verifywhitelabel.go @@ -4,16 +4,22 @@ import ( "fmt" "github.com/TicketsBot/GoPanel/config" "github.com/TicketsBot/GoPanel/rpc" + "github.com/TicketsBot/GoPanel/utils" "github.com/TicketsBot/common/premium" "github.com/gin-gonic/gin" ) func VerifyWhitelabel(isApi bool) func(ctx *gin.Context) { return func(ctx *gin.Context) { - userId := ctx.Keys["userid"].(uint64) - if rpc.PremiumClient.GetTierByUser(userId, false) < premium.Whitelabel { + tier, err := rpc.PremiumClient.GetTierByUser(userId, false) + if err != nil { + ctx.JSON(500, utils.ErrorJson(err)) + return + } + + if tier < premium.Whitelabel { var isForced bool for _, id := range config.Conf.ForceWhitelabel { if id == userId { diff --git a/go.mod b/go.mod index cbedcc9..cb60fd7 100644 --- a/go.mod +++ b/go.mod @@ -5,9 +5,9 @@ go 1.14 require ( github.com/BurntSushi/toml v0.3.1 github.com/TicketsBot/archiverclient v0.0.0-20210220155137-a562b2f1bbbb - github.com/TicketsBot/common v0.0.0-20210604175952-03cfa14c16e1 - github.com/TicketsBot/database v0.0.0-20210724134842-d5a99b5a6f18 - github.com/TicketsBot/worker v0.0.0-20210715115321-395f29f5d5e1 + github.com/TicketsBot/common v0.0.0-20210727122454-304ff13e33cb + github.com/TicketsBot/database v0.0.0-20210725125137-5540e9ff7484 + github.com/TicketsBot/worker v0.0.0-20210727130432-3df3cd1246a3 github.com/apex/log v1.1.2 github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect github.com/gin-contrib/static v0.0.0-20191128031702-f81c604d8ac2