Add ntfy config settings
This commit is contained in:
@@ -20,6 +20,10 @@ type ConfigPageData struct {
|
||||
RateLimitLoginBurst int
|
||||
RateLimitApiPerMinute int
|
||||
RateLimitApiBurst int
|
||||
|
||||
NtfyUse bool
|
||||
NtfyUrl string
|
||||
NtfyTopic string
|
||||
}
|
||||
|
||||
// ConfigPage renders a modular admin config screen.
|
||||
@@ -28,14 +32,17 @@ func (h *Handler) ConfigPage(c *gin.Context) {
|
||||
|
||||
maxBytes := cfg.GetInt64Default(config.KeyUploadMaxFileSizeBytes, config.DefaultUploadMaxFileSizeBytes)
|
||||
data := ConfigPageData{
|
||||
Success: c.Query("saved") == "1",
|
||||
UploadMaxFileSizeMB: maxBytes / (1024 * 1024),
|
||||
UploadMultiMaxFiles: cfg.GetIntDefault(config.KeyUploadMultiMaxFiles, config.DefaultUploadMultiMaxFiles),
|
||||
UploadMaxHours: cfg.GetIntDefault(config.KeyUploadMaxHours, config.DefaultUploadMaxHours),
|
||||
Success: c.Query("saved") == "1",
|
||||
UploadMaxFileSizeMB: maxBytes / (1024 * 1024),
|
||||
UploadMultiMaxFiles: cfg.GetIntDefault(config.KeyUploadMultiMaxFiles, config.DefaultUploadMultiMaxFiles),
|
||||
UploadMaxHours: cfg.GetIntDefault(config.KeyUploadMaxHours, config.DefaultUploadMaxHours),
|
||||
RateLimitLoginPerMinute: cfg.GetIntDefault(config.KeyRateLimitLoginPerMinute, config.DefaultRateLimitLoginPerMinute),
|
||||
RateLimitLoginBurst: cfg.GetIntDefault(config.KeyRateLimitLoginBurst, config.DefaultRateLimitLoginBurst),
|
||||
RateLimitApiPerMinute: cfg.GetIntDefault(config.KeyRateLimitApiPerMinute, config.DefaultRateLimitApiPerMinute),
|
||||
RateLimitApiBurst: cfg.GetIntDefault(config.KeyRateLimitApiBurst, config.DefaultRateLimitApiBurst),
|
||||
NtfyUse: cfg.GetIntDefault(config.KeyUseNtfy, 0) != 0,
|
||||
NtfyUrl: cfg.GetStringDefault(config.KeyNtfyUrl, config.DefaultNtfyUrl),
|
||||
NtfyTopic: cfg.GetStringDefault(config.KeyNtfyTopic, config.DefaultNtfyTopic),
|
||||
}
|
||||
|
||||
c.HTML(http.StatusOK, "config.html", data)
|
||||
@@ -113,6 +120,14 @@ func (h *Handler) ConfigSave(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
useNTFY, err := strconv.ParseBool(c.PostForm("ntfy_use"))
|
||||
if err != nil {
|
||||
h.renderConfigError(c, "invalid ntfy use value")
|
||||
return
|
||||
}
|
||||
ntfyUrl := c.PostForm("ntfy_url")
|
||||
ntfyTopic := c.PostForm("ntfy_topic")
|
||||
|
||||
// Persist.
|
||||
if err := cfg.SetString(config.KeyUploadMaxFileSizeBytes, strconv.FormatInt(maxMB*1024*1024, 10)); err != nil {
|
||||
h.renderConfigError(c, err.Error())
|
||||
@@ -132,16 +147,25 @@ func (h *Handler) ConfigSave(c *gin.Context) {
|
||||
_ = cfg.SetString(config.KeyRateLimitApiPerMinute, strconv.Itoa(apiPerMin))
|
||||
_ = cfg.SetString(config.KeyRateLimitApiBurst, strconv.Itoa(apiBurst))
|
||||
|
||||
// shitty ah fix
|
||||
actualBool := 0
|
||||
if useNTFY {
|
||||
actualBool = 1
|
||||
}
|
||||
_ = cfg.SetString(config.KeyUseNtfy, strconv.Itoa(actualBool))
|
||||
_ = cfg.SetString(config.KeyNtfyUrl, ntfyUrl)
|
||||
_ = cfg.SetString(config.KeyNtfyTopic, ntfyTopic)
|
||||
|
||||
c.Redirect(http.StatusFound, "/config?saved=1")
|
||||
}
|
||||
|
||||
func (h *Handler) renderConfigError(c *gin.Context, msg string) {
|
||||
maxBytes := h.configService.GetInt64Default(config.KeyUploadMaxFileSizeBytes, config.DefaultUploadMaxFileSizeBytes)
|
||||
data := ConfigPageData{
|
||||
Error: msg,
|
||||
UploadMaxFileSizeMB: maxBytes / (1024 * 1024),
|
||||
UploadMultiMaxFiles: h.configService.GetIntDefault(config.KeyUploadMultiMaxFiles, config.DefaultUploadMultiMaxFiles),
|
||||
UploadMaxHours: h.configService.GetIntDefault(config.KeyUploadMaxHours, config.DefaultUploadMaxHours),
|
||||
Error: msg,
|
||||
UploadMaxFileSizeMB: maxBytes / (1024 * 1024),
|
||||
UploadMultiMaxFiles: h.configService.GetIntDefault(config.KeyUploadMultiMaxFiles, config.DefaultUploadMultiMaxFiles),
|
||||
UploadMaxHours: h.configService.GetIntDefault(config.KeyUploadMaxHours, config.DefaultUploadMaxHours),
|
||||
RateLimitLoginPerMinute: h.configService.GetIntDefault(config.KeyRateLimitLoginPerMinute, config.DefaultRateLimitLoginPerMinute),
|
||||
RateLimitLoginBurst: h.configService.GetIntDefault(config.KeyRateLimitLoginBurst, config.DefaultRateLimitLoginBurst),
|
||||
RateLimitApiPerMinute: h.configService.GetIntDefault(config.KeyRateLimitApiPerMinute, config.DefaultRateLimitApiPerMinute),
|
||||
|
||||
Reference in New Issue
Block a user