From eb8d62585cad3cdbfafb04465c6c24bdeadfaf9b Mon Sep 17 00:00:00 2001 From: rxdn <29165304+rxdn@users.noreply.github.com> Date: Thu, 23 Jun 2022 20:55:47 +0100 Subject: [PATCH] Update transcript permission check --- go.mod | 2 +- go.sum | 2 -- utils/permissionutils.go | 18 ++++++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a73829b..b08162e 100644 --- a/go.mod +++ b/go.mod @@ -19,6 +19,7 @@ require ( github.com/go-redis/redis_rate/v9 v9.1.1 github.com/golang-jwt/jwt v3.2.2+incompatible github.com/gorilla/websocket v1.5.0 + github.com/jackc/pgtype v1.4.0 github.com/jackc/pgx/v4 v4.7.1 github.com/pasztorpisti/qs v0.0.0-20171216220353-8d6c33ee906c github.com/pkg/errors v0.9.1 @@ -53,7 +54,6 @@ require ( github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgproto3/v2 v2.0.2 // indirect github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8 // indirect - github.com/jackc/pgtype v1.4.0 // indirect github.com/jackc/pgx v3.6.2+incompatible // indirect github.com/jackc/puddle v1.1.1 // indirect github.com/json-iterator/go v1.1.10 // indirect diff --git a/go.sum b/go.sum index 9583b09..944d6b0 100644 --- a/go.sum +++ b/go.sum @@ -5,8 +5,6 @@ github.com/TicketsBot/archiverclient v0.0.0-20220326163414-558fd52746dc h1:n15W8 github.com/TicketsBot/archiverclient v0.0.0-20220326163414-558fd52746dc/go.mod h1:2KcfHS0JnSsgcxZBs3NyWMXNQzEo67mBSGOyzHPWOCc= github.com/TicketsBot/common v0.0.0-20220615205931-a6a31e73b52a h1:SwA18cDURmnXSrKBdetNVanSsyJBMtyosDzvgYMpKP4= github.com/TicketsBot/common v0.0.0-20220615205931-a6a31e73b52a/go.mod h1:ZAoYcDD7SQLTsZT7dbo/X0J256+pogVRAReunCGng+U= -github.com/TicketsBot/database v0.0.0-20220621182433-accd1b2b81de h1:UsRiB3KIwqIF92huRBFKAnCoGLyT9kBYYUycsapBZk0= -github.com/TicketsBot/database v0.0.0-20220621182433-accd1b2b81de/go.mod h1:F57cywrZsnper1cy56Bx0c/HEsxQBLHz3Pl98WXblWw= github.com/TicketsBot/database v0.0.0-20220623160906-a56dc9dfda90 h1:K0t6IaZdeZzEr2BaYj/NBuWIm/hA31jkqFh2c3nyDrw= github.com/TicketsBot/database v0.0.0-20220623160906-a56dc9dfda90/go.mod h1:F57cywrZsnper1cy56Bx0c/HEsxQBLHz3Pl98WXblWw= github.com/TicketsBot/logarchiver v0.0.0-20220326162808-cdf0310f5e1c h1:OqGjFH6mbE6gd+NqI2ARJdtH3UUvhiAkD0r0fhGJK2s= diff --git a/utils/permissionutils.go b/utils/permissionutils.go index b0e60cb..ce69641 100644 --- a/utils/permissionutils.go +++ b/utils/permissionutils.go @@ -64,6 +64,24 @@ func HasPermissionToViewTicket(guildId, userId uint64, ticket database.Ticket) ( return true, nil } + // Check staff override + staffOverride, err := dbclient.Client.StaffOverride.HasActiveOverride(guildId) + if err != nil { + return false, err + } + + // If staff override enabled and the user is bot staff, grant admin permissions + if staffOverride { + isBotStaff, err := dbclient.Client.BotStaff.IsStaff(userId) + if err != nil { + return false, err + } + + if isBotStaff { + return true, nil + } + } + // Check if server owner guild, err := botContext.GetGuild(guildId) if err != nil {