setting.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. // Mirrors web/assets/js/model/setting.js — every field on this class is
  2. // round-tripped through `/panel/setting/all` and `/panel/setting/update`,
  3. // so adding a field here without a matching Go-side change will silently
  4. // drop it on save. Defaults match the legacy panel.
  5. import { ObjectUtil } from '@/utils';
  6. export class AllSetting {
  7. constructor(data) {
  8. this.webListen = "";
  9. this.webDomain = "";
  10. this.webPort = 2053;
  11. this.webCertFile = "";
  12. this.webKeyFile = "";
  13. this.webBasePath = "/";
  14. this.sessionMaxAge = 360;
  15. this.trustedProxyCIDRs = "127.0.0.1/32,::1/128";
  16. this.pageSize = 25;
  17. this.expireDiff = 0;
  18. this.trafficDiff = 0;
  19. this.remarkModel = "-ieo";
  20. this.datepicker = "gregorian";
  21. this.tgBotEnable = false;
  22. this.tgBotToken = "";
  23. this.tgBotProxy = "";
  24. this.tgBotAPIServer = "";
  25. this.tgBotChatId = "";
  26. this.tgRunTime = "@daily";
  27. this.tgBotBackup = false;
  28. this.tgBotLoginNotify = true;
  29. this.tgCpu = 80;
  30. this.tgLang = "en-US";
  31. this.twoFactorEnable = false;
  32. this.twoFactorToken = "";
  33. this.xrayTemplateConfig = "";
  34. this.subEnable = true;
  35. this.subJsonEnable = false;
  36. this.subTitle = "";
  37. this.subSupportUrl = "";
  38. this.subProfileUrl = "";
  39. this.subAnnounce = "";
  40. this.subEnableRouting = true;
  41. this.subRoutingRules = "";
  42. this.subListen = "";
  43. this.subPort = 2096;
  44. this.subPath = "/sub/";
  45. this.subJsonPath = "/json/";
  46. this.subClashEnable = true;
  47. this.subClashPath = "/clash/";
  48. this.subDomain = "";
  49. this.externalTrafficInformEnable = false;
  50. this.externalTrafficInformURI = "";
  51. this.restartXrayOnClientDisable = true;
  52. this.subCertFile = "";
  53. this.subKeyFile = "";
  54. this.subUpdates = 12;
  55. this.subEncrypt = true;
  56. this.subShowInfo = true;
  57. this.subEmailInRemark = true;
  58. this.subURI = "";
  59. this.subJsonURI = "";
  60. this.subClashURI = "";
  61. this.subJsonFragment = "";
  62. this.subJsonNoises = "";
  63. this.subJsonMux = "";
  64. this.subJsonRules = "";
  65. this.timeLocation = "Local";
  66. // LDAP settings
  67. this.ldapEnable = false;
  68. this.ldapHost = "";
  69. this.ldapPort = 389;
  70. this.ldapUseTLS = false;
  71. this.ldapBindDN = "";
  72. this.ldapPassword = "";
  73. this.ldapBaseDN = "";
  74. this.ldapUserFilter = "(objectClass=person)";
  75. this.ldapUserAttr = "mail";
  76. this.ldapVlessField = "vless_enabled";
  77. this.ldapSyncCron = "@every 1m";
  78. this.ldapFlagField = "";
  79. this.ldapTruthyValues = "true,1,yes,on";
  80. this.ldapInvertFlag = false;
  81. this.ldapInboundTags = "";
  82. this.ldapAutoCreate = false;
  83. this.ldapAutoDelete = false;
  84. this.ldapDefaultTotalGB = 0;
  85. this.ldapDefaultExpiryDays = 0;
  86. this.ldapDefaultLimitIP = 0;
  87. this.hasTgBotToken = false;
  88. this.hasTwoFactorToken = false;
  89. this.hasLdapPassword = false;
  90. this.hasApiToken = false;
  91. this.hasWarpSecret = false;
  92. this.hasNordSecret = false;
  93. if (data == null) {
  94. return
  95. }
  96. ObjectUtil.cloneProps(this, data);
  97. }
  98. equals(other) {
  99. return ObjectUtil.equals(this, other);
  100. }
  101. }