fix: 修复 SpamBlock 配置越权 (#352)

This commit is contained in:
NikoCat233 2026-07-22 15:57:22 +08:00 committed by GitHub
parent 87d3ce35d3
commit da55756917
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 0 deletions

View File

@ -63,6 +63,9 @@ func (s *SpamBlock) SettingsHtml(ctx *context.Context, url string, requestData s
}
return fmt.Sprintf(index, s.cfg.ApiURL, s.cfg.ApiTimeout, s.cfg.Threshold)
}
if !ctx.IsAdmin {
return "No Access Privileges"
}
var cfg SpamBlockConfig
var tempCfg map[string]string

View File

@ -0,0 +1,18 @@
package main
import (
"testing"
"github.com/Jinnrry/pmail/utils/context"
)
func TestSettingsHtmlRejectsNonAdminSave(t *testing.T) {
s := &SpamBlock{}
result := s.SettingsHtml(&context.Context{}, "SpamBlock/save", `{"url":"https://model.example.com/predict"}`)
if result != "No Access Privileges" {
t.Fatalf("non-admin save result = %q, want access denial", result)
}
if s.cfg.ApiURL != "" {
t.Fatal("non-admin save changed the configuration")
}
}