diff --git a/app/http/endpoints/manage/settings.go b/app/http/endpoints/manage/settings.go index 0ffb613..c8caeef 100644 --- a/app/http/endpoints/manage/settings.go +++ b/app/http/endpoints/manage/settings.go @@ -243,6 +243,17 @@ func SettingsHandler(ctx *gin.Context) { go table.UpdatePanelSettings(guildId, panelTitle, panelContent, int(panelColour)) } + // Users can close + usersCanCloseChan := make(chan bool) + go table.IsUserCanClose(guildId, usersCanCloseChan) + usersCanClose := <-usersCanCloseChan + + usersCanCloseStr := ctx.Query("userscanclose") + if csrfCorrect { + usersCanClose = usersCanCloseStr == "on" + table.SetUserCanClose(guildId, usersCanClose) + } + utils.Respond(ctx, template.TemplateSettings.Render(map[string]interface{}{ "name": store.Get("name").(string), "guildId": guildIdStr, @@ -260,6 +271,7 @@ func SettingsHandler(ctx *gin.Context) { "paneltitle": panelTitle, "panelcontent": panelContent, "panelcolour": strconv.FormatInt(int64(panelColour), 16), + "usersCanClose": usersCanClose, })) } else { ctx.Redirect(302, "/login") diff --git a/database/table/userscanclose.go b/database/table/userscanclose.go new file mode 100644 index 0000000..69da800 --- /dev/null +++ b/database/table/userscanclose.go @@ -0,0 +1,27 @@ +package table + +import "github.com/TicketsBot/GoPanel/database" + +type UserCanClose struct { + Guild int64 `gorm:"column:GUILDID;unique;primary_key"` + CanClose *bool `gorm:"column:CANCLOSE"` +} + +func (UserCanClose) TableName() string { + return "usercanclose" +} + +func IsUserCanClose(guild int64, ch chan bool) { + var node UserCanClose + database.Database.Where(UserCanClose{Guild: guild}).First(&node) + + if node.CanClose == nil { + ch <- true + } else { + ch <- *node.CanClose + } +} + +func SetUserCanClose(guild int64, value bool) { + database.Database.Where(&UserCanClose{Guild: guild}).Assign(&UserCanClose{CanClose: &value}).FirstOrCreate(&UserCanClose{}) +} diff --git a/public/templates/views/settings.mustache b/public/templates/views/settings.mustache index 9bc8196..03429f3 100644 --- a/public/templates/views/settings.mustache +++ b/public/templates/views/settings.mustache @@ -42,7 +42,7 @@