chore(07): integrate LDAP config into YAML and remove JSON files

This commit is contained in:
2026-04-23 12:58:15 +03:00
parent 7d492764d2
commit 88e5d66f36
11 changed files with 91 additions and 115 deletions

View File

@@ -14,6 +14,7 @@ import os
import socket
import subprocess
from .. import models, schemas, database, auth
from ..config_loader import get_config
from ..logger import log
router = APIRouter(prefix="/users", tags=["auth"])
@@ -22,20 +23,18 @@ pwd_context = CryptContext(schemes=["pbkdf2_sha256"], deprecated="auto")
def get_ldap_config():
# Priority 1: Check in DATA_DIR (for Docker production)
config_path = os.path.join(database.DATA_DIR, "config", "ldap_config.json")
if os.path.exists(config_path):
with open(config_path, "r") as f:
return json.load(f)
# Priority 2: Fallback to source-relative config (for local dev)
root_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
source_config_path = os.path.join(root_dir, "config", "ldap_config.json")
if os.path.exists(source_config_path):
with open(source_config_path, "r") as f:
return json.load(f)
return {"ldap_enabled": False}
config = get_config()
auth_config = config.get("auth", {})
return {
"ldap_enabled": auth_config.get("ldap_enabled", False),
"server_uri": auth_config.get("ldap_server"),
"base_dn": auth_config.get("ldap_base_dn"),
"user_template": auth_config.get("ldap_user_template"),
"groups_dn": auth_config.get("ldap_groups_dn"),
"use_tls": auth_config.get("ldap_use_tls", True),
"ignore_cert": auth_config.get("ldap_ignore_cert", False),
"role_mappings": auth_config.get("ldap_role_mappings", [])
}
def authenticate_ldap(username, password):