mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-10-13 11:39:13 +00:00
see to changelog
This commit is contained in:
parent
51b5d10edf
commit
df3e483797
2 changed files with 242 additions and 0 deletions
121
changelog_RU_EN.md
Normal file
121
changelog_RU_EN.md
Normal file
|
@ -0,0 +1,121 @@
|
|||
# 📌 Changelog
|
||||
|
||||
---
|
||||
|
||||
## 🇬🇧 English
|
||||
|
||||
### 🔐 LDAP Integration for Client Access Management
|
||||
- **Scheduled sync job** reads LDAP and:
|
||||
- Enables/disables clients by `client.email` (local status storage, no LDAP lookups on connect).
|
||||
- *Optionally* auto-creates clients in selected inbounds if they don’t exist yet.
|
||||
- *Optionally* auto-deletes clients from selected inbounds if they disappear in LDAP or access flag = `deny`.
|
||||
|
||||
### ⚙️ Access Flag Evaluation
|
||||
- Uses:
|
||||
- `ldapFlagField` (fallback: `ldapVlessField` if empty),
|
||||
- `ldapTruthyValues` (default: `true, 1, yes, on`),
|
||||
- `ldapInvertFlag` (useful for `shadowInactive`).
|
||||
- **Example:**
|
||||
`shadowInactive=1` + `ldapTruthyValues=1` + `ldapInvertFlag=true` → client **disabled**.
|
||||
- **Matching:** `ldapUserAttr` (e.g., `mail`) ↔ `client.email`.
|
||||
|
||||
### 🆕 New Settings
|
||||
**Panel → Settings → General → LDAP**
|
||||
- **Connection:** `ldapHost`, `ldapPort`, `ldapUseTLS`, `ldapBindDN`, `ldapPassword`, `ldapBaseDN`.
|
||||
- **User Search:** `ldapUserFilter`, `ldapUserAttr`.
|
||||
- **Access Flag:** `ldapFlagField` (or `ldapVlessField`), `ldapTruthyValues`, `ldapInvertFlag`.
|
||||
- **Scheduler:** `ldapEnable`, `ldapSyncCron` (e.g., `@every 1m`).
|
||||
- **Inbound Management (multi-select):** `ldapInboundTags`.
|
||||
- **Auto Actions:** `ldapAutoCreate`, `ldapAutoDelete`.
|
||||
- **Defaults for Auto-Create:**
|
||||
- `ldapDefaultTotalGB`
|
||||
- `ldapDefaultExpiryDays`
|
||||
- `ldapDefaultLimitIP` (0 = unlimited).
|
||||
|
||||
👉 UI: `ldapInboundTags` options are fetched from `/panel/inbound/list`; a hint is shown if none exist.
|
||||
|
||||
### 🛠️ Auto-Create Rules
|
||||
- **VLESS/VMESS:** generate UUID, use `security/flow` from inbound.
|
||||
- **Trojan:** generate password, email = LDAP mail.
|
||||
- **Shadowsocks:** take method from inbound, generate password.
|
||||
- **All protocols:** `enable` from LDAP flag, limits/expiry from defaults.
|
||||
|
||||
### 🔧 Implementation
|
||||
- **Sync job:** `web/job/ldap_sync_job.go`
|
||||
- **LDAP client:** `util/ldap/ldap.go` (go-ldap/ldap/v3)
|
||||
- **Backend:** `web/service/setting.go`, `web/entity/entity.go`
|
||||
- **Frontend:**
|
||||
- `web/assets/js/model/setting.js`
|
||||
- `web/html/settings/panel/general.html`
|
||||
- `web/html/settings.html`
|
||||
- **Xray restart:** handled by scheduler when changes occur.
|
||||
|
||||
### 🗄️ External MySQL Database
|
||||
- Support added for **external MySQL** instead of local DB.
|
||||
- Docker env supports external DB parameters.
|
||||
- Panel starts as soon as DB is reachable.
|
||||
|
||||
### 🔄 Upgrade Notes
|
||||
- Frontend assets are version-busted (`config/version`) → **hard refresh browser** after update (`Ctrl+F5`).
|
||||
- If you previously used only `vless_enabled`, you can now use any LDAP attribute via `ldapFlagField + ldapTruthyValues + ldapInvertFlag`.
|
||||
- To enable auto-create, select inbounds in `ldapInboundTags` and enable `ldapAutoCreate`.
|
||||
|
||||
---
|
||||
|
||||
## 🇷🇺 Русский
|
||||
|
||||
### 🔐 Интеграция с LDAP для управления доступом клиентов
|
||||
- **Периодическая синхронизация (cron)**:
|
||||
- Включает/выключает клиентов по `client.email` (локально, без онлайн-запросов).
|
||||
- *Опционально* автосоздаёт клиентов в выбранных инбаундах.
|
||||
- *Опционально* автоудаляет клиентов, если их нет в LDAP или флаг запрещает доступ.
|
||||
|
||||
### ⚙️ Логика проверки флага доступа
|
||||
- Используется:
|
||||
- `ldapFlagField` (если пусто → `ldapVlessField`),
|
||||
- `ldapTruthyValues` (по умолчанию: `true,1,yes,on`),
|
||||
- `ldapInvertFlag` (например, для `shadowInactive`).
|
||||
- **Пример:**
|
||||
`shadowInactive=1` + `ldapTruthyValues=1` + `ldapInvertFlag=true` → клиент **отключён**.
|
||||
- **Сопоставление:** `ldapUserAttr` (обычно `mail`) ↔ `client.email`.
|
||||
|
||||
### 🆕 Новые параметры
|
||||
**Панель → Settings → General → LDAP**
|
||||
- **Подключение:** `ldapHost`, `ldapPort`, `ldapUseTLS`, `ldapBindDN`, `ldapPassword`, `ldapBaseDN`.
|
||||
- **Поиск пользователей:** `ldapUserFilter`, `ldapUserAttr`.
|
||||
- **Флаг доступа:** `ldapFlagField` (или `ldapVlessField`), `ldapTruthyValues`, `ldapInvertFlag`.
|
||||
- **Планировщик:** `ldapEnable`, `ldapSyncCron` (например, `@every 1m`).
|
||||
- **Управление инбаундами:** `ldapInboundTags`.
|
||||
- **Автодействия:** `ldapAutoCreate`, `ldapAutoDelete`.
|
||||
- **Дефолты для автосоздания:**
|
||||
- `ldapDefaultTotalGB`
|
||||
- `ldapDefaultExpiryDays`
|
||||
- `ldapDefaultLimitIP` (0 = безлимит).
|
||||
|
||||
👉 UI: `ldapInboundTags` выбираются из `/panel/inbound/list`. Если инбаундов нет — показывается подсказка.
|
||||
|
||||
### 🛠️ Правила автосоздания
|
||||
- **VLESS/VMESS:** генерируется UUID, параметры `security/flow` из инбаунда.
|
||||
- **Trojan:** генерируется пароль, email = mail из LDAP.
|
||||
- **Shadowsocks:** берёт `method` из инбаунда, генерирует пароль.
|
||||
- **Все протоколы:** статус включён/выключен по флагу, лимиты/срок из дефолтов.
|
||||
|
||||
### 🔧 Реализация
|
||||
- **Job:** `web/job/ldap_sync_job.go`
|
||||
- **LDAP-клиент:** `util/ldap/ldap.go` (go-ldap/ldap/v3)
|
||||
- **Backend:** `web/service/setting.go`, `web/entity/entity.go`
|
||||
- **Frontend:**
|
||||
- `web/assets/js/model/setting.js`
|
||||
- `web/html/settings/panel/general.html`
|
||||
- `web/html/settings.html`
|
||||
- **Перезапуск Xray:** флаг на изменения → обрабатывается планировщиком.
|
||||
|
||||
### 🗄️ Внешняя база MySQL
|
||||
- Поддержка подключения к **внешней MySQL** вместо локальной.
|
||||
- Docker-окружение принимает параметры внешней БД.
|
||||
- Панель стартует при доступности БД.
|
||||
|
||||
### 🔄 Замечания по обновлению
|
||||
- Версия фронтенда контролируется через `config/version` → после обновления сделайте **жёсткое обновление страницы** (`Ctrl+F5`).
|
||||
- Если раньше использовался только `vless_enabled`, теперь можно использовать произвольный атрибут (`ldapFlagField + ldapTruthyValues + ldapInvertFlag`).
|
||||
- Для автосоздания заранее выберите инбаунды в `ldapInboundTags` и включите `ldapAutoCreate`.
|
121
changelog_RU_EN.txt
Normal file
121
changelog_RU_EN.txt
Normal file
|
@ -0,0 +1,121 @@
|
|||
# 📌 Changelog
|
||||
|
||||
---
|
||||
|
||||
## 🇬🇧 English
|
||||
|
||||
### 🔐 LDAP Integration for Client Access Management
|
||||
- **Scheduled sync job** reads LDAP and:
|
||||
- Enables/disables clients by `client.email` (local status storage, no LDAP lookups on connect).
|
||||
- *Optionally* auto-creates clients in selected inbounds if they don’t exist yet.
|
||||
- *Optionally* auto-deletes clients from selected inbounds if they disappear in LDAP or access flag = `deny`.
|
||||
|
||||
### ⚙️ Access Flag Evaluation
|
||||
- Uses:
|
||||
- `ldapFlagField` (fallback: `ldapVlessField` if empty),
|
||||
- `ldapTruthyValues` (default: `true, 1, yes, on`),
|
||||
- `ldapInvertFlag` (useful for `shadowInactive`).
|
||||
- **Example:**
|
||||
`shadowInactive=1` + `ldapTruthyValues=1` + `ldapInvertFlag=true` → client **disabled**.
|
||||
- **Matching:** `ldapUserAttr` (e.g., `mail`) ↔ `client.email`.
|
||||
|
||||
### 🆕 New Settings
|
||||
**Panel → Settings → General → LDAP**
|
||||
- **Connection:** `ldapHost`, `ldapPort`, `ldapUseTLS`, `ldapBindDN`, `ldapPassword`, `ldapBaseDN`.
|
||||
- **User Search:** `ldapUserFilter`, `ldapUserAttr`.
|
||||
- **Access Flag:** `ldapFlagField` (or `ldapVlessField`), `ldapTruthyValues`, `ldapInvertFlag`.
|
||||
- **Scheduler:** `ldapEnable`, `ldapSyncCron` (e.g., `@every 1m`).
|
||||
- **Inbound Management (multi-select):** `ldapInboundTags`.
|
||||
- **Auto Actions:** `ldapAutoCreate`, `ldapAutoDelete`.
|
||||
- **Defaults for Auto-Create:**
|
||||
- `ldapDefaultTotalGB`
|
||||
- `ldapDefaultExpiryDays`
|
||||
- `ldapDefaultLimitIP` (0 = unlimited).
|
||||
|
||||
👉 UI: `ldapInboundTags` options are fetched from `/panel/inbound/list`; a hint is shown if none exist.
|
||||
|
||||
### 🛠️ Auto-Create Rules
|
||||
- **VLESS/VMESS:** generate UUID, use `security/flow` from inbound.
|
||||
- **Trojan:** generate password, email = LDAP mail.
|
||||
- **Shadowsocks:** take method from inbound, generate password.
|
||||
- **All protocols:** `enable` from LDAP flag, limits/expiry from defaults.
|
||||
|
||||
### 🔧 Implementation
|
||||
- **Sync job:** `web/job/ldap_sync_job.go`
|
||||
- **LDAP client:** `util/ldap/ldap.go` (go-ldap/ldap/v3)
|
||||
- **Backend:** `web/service/setting.go`, `web/entity/entity.go`
|
||||
- **Frontend:**
|
||||
- `web/assets/js/model/setting.js`
|
||||
- `web/html/settings/panel/general.html`
|
||||
- `web/html/settings.html`
|
||||
- **Xray restart:** handled by scheduler when changes occur.
|
||||
|
||||
### 🗄️ External MySQL Database
|
||||
- Support added for **external MySQL** instead of local DB.
|
||||
- Docker env supports external DB parameters.
|
||||
- Panel starts as soon as DB is reachable.
|
||||
|
||||
### 🔄 Upgrade Notes
|
||||
- Frontend assets are version-busted (`config/version`) → **hard refresh browser** after update (`Ctrl+F5`).
|
||||
- If you previously used only `vless_enabled`, you can now use any LDAP attribute via `ldapFlagField + ldapTruthyValues + ldapInvertFlag`.
|
||||
- To enable auto-create, select inbounds in `ldapInboundTags` and enable `ldapAutoCreate`.
|
||||
|
||||
---
|
||||
|
||||
## 🇷🇺 Русский
|
||||
|
||||
### 🔐 Интеграция с LDAP для управления доступом клиентов
|
||||
- **Периодическая синхронизация (cron)**:
|
||||
- Включает/выключает клиентов по `client.email` (локально, без онлайн-запросов).
|
||||
- *Опционально* автосоздаёт клиентов в выбранных инбаундах.
|
||||
- *Опционально* автоудаляет клиентов, если их нет в LDAP или флаг запрещает доступ.
|
||||
|
||||
### ⚙️ Логика проверки флага доступа
|
||||
- Используется:
|
||||
- `ldapFlagField` (если пусто → `ldapVlessField`),
|
||||
- `ldapTruthyValues` (по умолчанию: `true,1,yes,on`),
|
||||
- `ldapInvertFlag` (например, для `shadowInactive`).
|
||||
- **Пример:**
|
||||
`shadowInactive=1` + `ldapTruthyValues=1` + `ldapInvertFlag=true` → клиент **отключён**.
|
||||
- **Сопоставление:** `ldapUserAttr` (обычно `mail`) ↔ `client.email`.
|
||||
|
||||
### 🆕 Новые параметры
|
||||
**Панель → Settings → General → LDAP**
|
||||
- **Подключение:** `ldapHost`, `ldapPort`, `ldapUseTLS`, `ldapBindDN`, `ldapPassword`, `ldapBaseDN`.
|
||||
- **Поиск пользователей:** `ldapUserFilter`, `ldapUserAttr`.
|
||||
- **Флаг доступа:** `ldapFlagField` (или `ldapVlessField`), `ldapTruthyValues`, `ldapInvertFlag`.
|
||||
- **Планировщик:** `ldapEnable`, `ldapSyncCron` (например, `@every 1m`).
|
||||
- **Управление инбаундами:** `ldapInboundTags`.
|
||||
- **Автодействия:** `ldapAutoCreate`, `ldapAutoDelete`.
|
||||
- **Дефолты для автосоздания:**
|
||||
- `ldapDefaultTotalGB`
|
||||
- `ldapDefaultExpiryDays`
|
||||
- `ldapDefaultLimitIP` (0 = безлимит).
|
||||
|
||||
👉 UI: `ldapInboundTags` выбираются из `/panel/inbound/list`. Если инбаундов нет — показывается подсказка.
|
||||
|
||||
### 🛠️ Правила автосоздания
|
||||
- **VLESS/VMESS:** генерируется UUID, параметры `security/flow` из инбаунда.
|
||||
- **Trojan:** генерируется пароль, email = mail из LDAP.
|
||||
- **Shadowsocks:** берёт `method` из инбаунда, генерирует пароль.
|
||||
- **Все протоколы:** статус включён/выключен по флагу, лимиты/срок из дефолтов.
|
||||
|
||||
### 🔧 Реализация
|
||||
- **Job:** `web/job/ldap_sync_job.go`
|
||||
- **LDAP-клиент:** `util/ldap/ldap.go` (go-ldap/ldap/v3)
|
||||
- **Backend:** `web/service/setting.go`, `web/entity/entity.go`
|
||||
- **Frontend:**
|
||||
- `web/assets/js/model/setting.js`
|
||||
- `web/html/settings/panel/general.html`
|
||||
- `web/html/settings.html`
|
||||
- **Перезапуск Xray:** флаг на изменения → обрабатывается планировщиком.
|
||||
|
||||
### 🗄️ Внешняя база MySQL
|
||||
- Поддержка подключения к **внешней MySQL** вместо локальной.
|
||||
- Docker-окружение принимает параметры внешней БД.
|
||||
- Панель стартует при доступности БД.
|
||||
|
||||
### 🔄 Замечания по обновлению
|
||||
- Версия фронтенда контролируется через `config/version` → после обновления сделайте **жёсткое обновление страницы** (`Ctrl+F5`).
|
||||
- Если раньше использовался только `vless_enabled`, теперь можно использовать произвольный атрибут (`ldapFlagField + ldapTruthyValues + ldapInvertFlag`).
|
||||
- Для автосоздания заранее выберите инбаунды в `ldapInboundTags` и включите `ldapAutoCreate`.
|
Loading…
Reference in a new issue