From 28a17a80ec0c4a0f82e8acfca351651d762b3ec9 Mon Sep 17 00:00:00 2001 From: konstpic <156318483+konstpic@users.noreply.github.com> Date: Sun, 28 Sep 2025 22:00:16 +0300 Subject: feat: add ldap component (#3568) * add ldap component * fix: fix russian comments, tls cert verify default true * feat: remove replaces go mod for local dev --- web/assets/js/model/setting.js | 22 ++++++++++++++++++++++ web/assets/js/util/index.js | 24 +++++++----------------- 2 files changed, 29 insertions(+), 17 deletions(-) (limited to 'web/assets/js') diff --git a/web/assets/js/model/setting.js b/web/assets/js/model/setting.js index daf03799..53ffae1a 100644 --- a/web/assets/js/model/setting.js +++ b/web/assets/js/model/setting.js @@ -50,6 +50,28 @@ class AllSetting { this.timeLocation = "Local"; + // LDAP settings + this.ldapEnable = false; + this.ldapHost = ""; + this.ldapPort = 389; + this.ldapUseTLS = false; + this.ldapBindDN = ""; + this.ldapPassword = ""; + this.ldapBaseDN = ""; + this.ldapUserFilter = "(objectClass=person)"; + this.ldapUserAttr = "mail"; + this.ldapVlessField = "vless_enabled"; + this.ldapSyncCron = "@every 1m"; + this.ldapFlagField = ""; + this.ldapTruthyValues = "true,1,yes,on"; + this.ldapInvertFlag = false; + this.ldapInboundTags = ""; + this.ldapAutoCreate = false; + this.ldapAutoDelete = false; + this.ldapDefaultTotalGB = 0; + this.ldapDefaultExpiryDays = 0; + this.ldapDefaultLimitIP = 0; + if (data == null) { return } diff --git a/web/assets/js/util/index.js b/web/assets/js/util/index.js index bb47f538..902974f0 100644 --- a/web/assets/js/util/index.js +++ b/web/assets/js/util/index.js @@ -316,23 +316,13 @@ class ObjectUtil { } static equals(a, b) { - for (const key in a) { - if (!a.hasOwnProperty(key)) { - continue; - } - if (!b.hasOwnProperty(key)) { - return false; - } else if (a[key] !== b[key]) { - return false; - } - } - for (const key in b) { - if (!b.hasOwnProperty(key)) { - continue; - } - if (!a.hasOwnProperty(key)) { - return false; - } + // shallow, symmetric comparison so newly added fields also affect equality + const aKeys = Object.keys(a); + const bKeys = Object.keys(b); + if (aKeys.length !== bKeys.length) return false; + for (const key of aKeys) { + if (!Object.prototype.hasOwnProperty.call(b, key)) return false; + if (a[key] !== b[key]) return false; } return true; } -- cgit v1.2.3