From 27e2fb6d25b92aa2877f52b0d95cfa00ed7168e3 Mon Sep 17 00:00:00 2001
From: rxdn <29165304+rxdn@users.noreply.github.com>
Date: Sun, 31 Jul 2022 22:36:24 +0100
Subject: [PATCH] Ticket permissions
---
app/http/endpoints/api/settings/settings.go | 13 ++++++++---
.../endpoints/api/settings/updatesettings.go | 5 +++++
frontend/src/components/Collapsible.svelte | 10 +++++++++
frontend/src/components/form/Toggle.svelte | 19 ++++++++++++++++
.../src/components/manage/SettingsCard.svelte | 22 +++++++++++++++----
go.mod | 2 +-
go.sum | 2 ++
7 files changed, 65 insertions(+), 8 deletions(-)
create mode 100644 frontend/src/components/form/Toggle.svelte
diff --git a/app/http/endpoints/api/settings/settings.go b/app/http/endpoints/api/settings/settings.go
index db55bf7..664cfab 100644
--- a/app/http/endpoints/api/settings/settings.go
+++ b/app/http/endpoints/api/settings/settings.go
@@ -15,9 +15,10 @@ import (
type (
Settings struct {
database.Settings
- ClaimSettings database.ClaimSettings `json:"claim_settings"`
- AutoCloseSettings AutoCloseData `json:"auto_close"`
- Colours ColourMap `json:"colours"`
+ ClaimSettings database.ClaimSettings `json:"claim_settings"`
+ AutoCloseSettings AutoCloseData `json:"auto_close"`
+ TicketPermissions database.TicketPermissions `json:"ticket_permissions"`
+ Colours ColourMap `json:"colours"`
Prefix string `json:"prefix"`
WelcomeMessage string `json:"welcome_message"`
@@ -72,6 +73,12 @@ func GetSettingsHandler(ctx *gin.Context) {
return nil
})
+ // ticket permissions
+ group.Go(func() (err error) {
+ settings.TicketPermissions, err = dbclient.Client.TicketPermissions.Get(guildId)
+ return
+ })
+
// colour map
group.Go(func() (err error) {
settings.Colours, err = getColourMap(guildId)
diff --git a/app/http/endpoints/api/settings/updatesettings.go b/app/http/endpoints/api/settings/updatesettings.go
index f16f5bf..eec6239 100644
--- a/app/http/endpoints/api/settings/updatesettings.go
+++ b/app/http/endpoints/api/settings/updatesettings.go
@@ -59,6 +59,7 @@ func UpdateSettingsHandler(ctx *gin.Context) {
return settings.updateClaimSettings(guildId)
})
+ addToWaitGroup(group, guildId, settings.updateTicketPermissions)
addToWaitGroup(group, guildId, settings.updateLanguage)
addToWaitGroup(group, guildId, settings.updateAutoClose)
@@ -339,6 +340,10 @@ func (s *Settings) updateLanguage(guildId uint64) error {
}
}
+func (s *Settings) updateTicketPermissions(guildId uint64) error {
+ return dbclient.Client.TicketPermissions.Set(guildId, s.TicketPermissions) // No validation required
+}
+
func (s *Settings) updateColours(guildId uint64) error {
// Convert ColourMap to primitives
converted := make(map[int16]int)
diff --git a/frontend/src/components/Collapsible.svelte b/frontend/src/components/Collapsible.svelte
index 1f38ee9..9e5a9b0 100644
--- a/frontend/src/components/Collapsible.svelte
+++ b/frontend/src/components/Collapsible.svelte
@@ -8,6 +8,14 @@