Remove global configuration settings in favour of a config file
This commit is contained in:
@@ -200,11 +200,6 @@ onDestroy(() => {
|
|||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
<ServerDiagnostics running_since={status.cpu_profile_running_since} on:refresh={() => getStats(lastOrder)}/>
|
<ServerDiagnostics running_since={status.cpu_profile_running_since} on:refresh={() => getStats(lastOrder)}/>
|
||||||
<br/>
|
|
||||||
<a class="button" href="/admin/globals">
|
|
||||||
<i class="icon">edit</i>
|
|
||||||
Global settings
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h3>Process stats</h3>
|
<h3>Process stats</h3>
|
||||||
|
@@ -1,91 +0,0 @@
|
|||||||
package webcontroller
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"html/template"
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
"fornaxian.tech/log"
|
|
||||||
"fornaxian.tech/pixeldrain_api_client/pixelapi"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (wc *WebController) adminGlobalsForm(td *TemplateData, r *http.Request) (f Form) {
|
|
||||||
if !td.Authenticated || !td.User.IsAdmin {
|
|
||||||
return Form{Title: ";-)"}
|
|
||||||
}
|
|
||||||
|
|
||||||
f = Form{
|
|
||||||
Name: "admin_globals",
|
|
||||||
Title: "Pixeldrain global configuration",
|
|
||||||
PreFormHTML: template.HTML("<p>Careful! The slightest typing error could bring the whole website down</p>"),
|
|
||||||
SubmitLabel: "Submit",
|
|
||||||
}
|
|
||||||
|
|
||||||
globals, err := td.PixelAPI.AdminGetGlobals()
|
|
||||||
if err != nil {
|
|
||||||
f.SubmitMessages = []template.HTML{template.HTML(err.Error())}
|
|
||||||
return f
|
|
||||||
}
|
|
||||||
var globalsMap = make(map[string]string)
|
|
||||||
for _, v := range globals {
|
|
||||||
f.Fields = append(f.Fields, Field{
|
|
||||||
Name: v.Key,
|
|
||||||
DefaultValue: v.Value,
|
|
||||||
Label: v.Key,
|
|
||||||
Type: func() FieldType {
|
|
||||||
switch v.Key {
|
|
||||||
case
|
|
||||||
"email_address_change_body",
|
|
||||||
"email_password_reset_body",
|
|
||||||
"email_register_user_body":
|
|
||||||
return FieldTypeTextarea
|
|
||||||
case
|
|
||||||
"api_ratelimit_limit",
|
|
||||||
"api_ratelimit_rate",
|
|
||||||
"cron_interval_seconds",
|
|
||||||
"file_inactive_expiry_days",
|
|
||||||
"max_file_size",
|
|
||||||
"pixelstore_min_redundancy":
|
|
||||||
return FieldTypeNumber
|
|
||||||
default:
|
|
||||||
return FieldTypeText
|
|
||||||
}
|
|
||||||
}(),
|
|
||||||
})
|
|
||||||
globalsMap[v.Key] = v.Value
|
|
||||||
}
|
|
||||||
|
|
||||||
if f.ReadInput(r) {
|
|
||||||
var successfulUpdates = 0
|
|
||||||
for k, v := range f.Fields {
|
|
||||||
if v.EnteredValue == globalsMap[v.Name] {
|
|
||||||
continue // Change changes, no need to update
|
|
||||||
}
|
|
||||||
|
|
||||||
// Value changed, try to update global setting
|
|
||||||
if err = td.PixelAPI.AdminSetGlobals(v.Name, v.EnteredValue); err != nil {
|
|
||||||
if apiErr, ok := err.(pixelapi.Error); ok {
|
|
||||||
f.SubmitMessages = append(f.SubmitMessages, template.HTML(apiErr.Message))
|
|
||||||
} else {
|
|
||||||
log.Error("%s", err)
|
|
||||||
f.SubmitMessages = append(f.SubmitMessages, template.HTML(
|
|
||||||
fmt.Sprintf("Failed to set '%s': %s", v.Name, err),
|
|
||||||
))
|
|
||||||
return f
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
f.Fields[k].DefaultValue = v.EnteredValue
|
|
||||||
successfulUpdates++
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
if len(f.SubmitMessages) == 0 {
|
|
||||||
// Request was a success
|
|
||||||
f.SubmitSuccess = true
|
|
||||||
f.SubmitMessages = []template.HTML{template.HTML(
|
|
||||||
fmt.Sprintf("Success! %d values updated", successfulUpdates),
|
|
||||||
)}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return f
|
|
||||||
}
|
|
@@ -166,19 +166,8 @@ func New(r *httprouter.Router, prefix string, conf Config) (wc *WebController) {
|
|||||||
{GET, "user/*p", wc.serveTemplate("user_home", handlerOpts{Auth: true, NoEmbed: true})},
|
{GET, "user/*p", wc.serveTemplate("user_home", handlerOpts{Auth: true, NoEmbed: true})},
|
||||||
|
|
||||||
// Admin settings
|
// Admin settings
|
||||||
{GET, "admin" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
{GET, "admin", wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
||||||
{GET, "admin/status" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
{GET, "admin/*p", wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
||||||
{GET, "admin/block_files" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
|
||||||
{GET, "admin/email_reporters" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
|
||||||
{GET, "admin/abuse_reports" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
|
||||||
{GET, "admin/ip_bans" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
|
||||||
{GET, "admin/user_bans" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
|
||||||
{GET, "admin/user_management" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
|
||||||
{GET, "admin/mollie_settlements" /**/, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
|
||||||
{GET, "admin/paypal_taxes" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
|
||||||
{GET, "admin/invoices" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})},
|
|
||||||
{GET, "admin/globals" /* */, wc.serveForm(wc.adminGlobalsForm, handlerOpts{Auth: true})},
|
|
||||||
{PST, "admin/globals" /* */, wc.serveForm(wc.adminGlobalsForm, handlerOpts{Auth: true})},
|
|
||||||
|
|
||||||
// Misc
|
// Misc
|
||||||
{GET, "misc/sharex/pixeldrain.com.sxcu", wc.serveShareXConfig},
|
{GET, "misc/sharex/pixeldrain.com.sxcu", wc.serveShareXConfig},
|
||||||
|
Reference in New Issue
Block a user