feat(sub): allow identity tokens on every subscription link (#5935)

Keep usage tokens first-link-only while adding an opt-in setting for repeating EMAIL and USERNAME in subscription-body remarks.

Co-authored-by: x06579 <x06579@ai-dashboard>
This commit is contained in:
H-TTTTT
2026-07-29 04:12:52 +08:00
committed by GitHub
parent 8bbca76bdd
commit 8f49327efb
29 changed files with 190 additions and 9 deletions
+5
View File
@@ -66,6 +66,7 @@ var defaultValueMap = map[string]string{
"expireDiff": "0",
"trafficDiff": "0",
"remarkTemplate": DefaultRemarkTemplate,
"subShowIdentityOnAllLinks": "false",
"timeLocation": "Local",
"tgBotEnable": "false",
"tgBotToken": "",
@@ -649,6 +650,10 @@ func (s *SettingService) GetRemarkTemplate() (string, error) {
return s.getString("remarkTemplate")
}
func (s *SettingService) GetSubShowIdentityOnAllLinks() (bool, error) {
return s.getBool("subShowIdentityOnAllLinks")
}
func (s *SettingService) GetSecret() ([]byte, error) {
secret, err := s.getString("secret")
if secret == defaultValueMap["secret"] {
@@ -0,0 +1,39 @@
package service
import "testing"
func TestSubShowIdentityOnAllLinksDefaultsAndPersists(t *testing.T) {
setupSettingTestDB(t)
s := &SettingService{}
if got, err := s.GetSubShowIdentityOnAllLinks(); err != nil || got {
t.Fatalf("missing setting = %t, %v; want false, nil", got, err)
}
settings, err := s.GetAllSetting()
if err != nil {
t.Fatal(err)
}
if settings.SubShowIdentityOnAllLinks {
t.Fatal("GetAllSetting returned true for a missing setting")
}
settings.SubShowIdentityOnAllLinks = true
if err := s.UpdateAllSetting(settings, SecretClears{}); err != nil {
t.Fatal(err)
}
if got, err := s.GetSubShowIdentityOnAllLinks(); err != nil || !got {
t.Fatalf("persisted setting = %t, %v; want true, nil", got, err)
}
settings, err = s.GetAllSetting()
if err != nil {
t.Fatal(err)
}
settings.SubShowIdentityOnAllLinks = false
if err := s.UpdateAllSetting(settings, SecretClears{}); err != nil {
t.Fatal(err)
}
if got, err := s.GetSubShowIdentityOnAllLinks(); err != nil || got {
t.Fatalf("persisted setting = %t, %v; want false, nil", got, err)
}
}