From 6099a07ff0a3f619ace3c7645ee76dce943a97e0 Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Mon, 4 May 2026 23:19:25 +0200 Subject: feat: add configurable auto-restart on client auto-disable Add a configurable option to restart Xray when clients are auto-disabled and persist disable actions. Changes include: - New setting restartXrayOnClientDisable (default true), getters/setters in SettingService, UI toggle in general settings, and translations for multiple locales. - AddTraffic signature updated to return a third bool (clientsDisabled). disableInvalidClients now calls Xray API to remove users, marks client_traffics.enable=false, updates inbound.Settings JSON so clients appear disabled in stored settings, and returns appropriate counts/errors. - XrayTrafficJob now checks the clientsDisabled flag and restarts Xray when the setting is enabled (with fallback to mark Xray as needing restart on failure). - XrayService.GetXrayConfig call adjusted to ignore AddTraffic returns. - Subscription generation (subService/subJson/subClash) no longer filters clients by their enable flag when matching subId. - Minor fixes: check_client_ip_job now checks scanner.Err and improved API error handling/logging. These changes ensure auto-disabled clients are propagated to Xray and the stored inbound settings, and provide an option to restart Xray automatically after auto-disable events. --- web/assets/js/model/setting.js | 1 + 1 file changed, 1 insertion(+) (limited to 'web/assets/js/model/setting.js') diff --git a/web/assets/js/model/setting.js b/web/assets/js/model/setting.js index d61d4b8e..d5b7d523 100644 --- a/web/assets/js/model/setting.js +++ b/web/assets/js/model/setting.js @@ -43,6 +43,7 @@ class AllSetting { this.subDomain = ""; this.externalTrafficInformEnable = false; this.externalTrafficInformURI = ""; + this.restartXrayOnClientDisable = true; this.subCertFile = ""; this.subKeyFile = ""; this.subUpdates = 12; -- cgit v1.2.3