account_protection_proxy.go 772 B

12345678910111213141516171819202122
  1. package service
  2. import (
  3. infraerrors "github.com/Wei-Shaw/sub2api/internal/pkg/errors"
  4. "strings"
  5. )
  6. var ErrProtectedProxyModeChange = infraerrors.BadRequest("PROTECTED_PROXY_MODE_CHANGE", "当前身份保护策略要求固定代理或直连;请先关闭或切换保护策略,再启用随机代理。原代理未更改。")
  7. // ProtectedProxyModeConflict is also checked under the repository row lock.
  8. func ProtectedProxyModeConflict(a *Account, extra map[string]any) bool {
  9. mode, _ := extra[ProxyModeExtraKey].(string)
  10. if a == nil || !a.AntiDegradationEnabled() || strings.ToLower(strings.TrimSpace(mode)) != ProxyModeRandom {
  11. return false
  12. }
  13. for _, key := range ProtectionManagedKeys(a) {
  14. if key == ProxyModeExtraKey {
  15. return true
  16. }
  17. }
  18. return false
  19. }