feat: LDAP 用户隐藏密码修改功能并应用默认配额

- /me API 返回 auth_source 字段
- 前端 Settings 页面对 LDAP 用户隐藏密码修改卡片
- LDAP 用户首次登录创建时使用系统默认配额

Close #98
This commit is contained in:
fawney19
2026-01-15 17:57:58 +08:00
parent d9645fa062
commit dd387735d4
4 changed files with 13 additions and 3 deletions

View File

@@ -536,6 +536,7 @@ class AuthCurrentUserAdapter(AuthenticatedApiAdapter):
"allowed_models": user.allowed_models,
"created_at": user.created_at.isoformat(),
"last_login_at": user.last_login_at.isoformat() if user.last_login_at else None,
"auth_source": user.auth_source.value,
}

View File

@@ -22,6 +22,7 @@ from sqlalchemy.orm import Session, joinedload
from src.config import config
from src.core.logger import logger
from src.core.enums import AuthSource
from src.services.system.config import SystemConfigService
if TYPE_CHECKING:
from src.models.database import ManagementToken
@@ -317,6 +318,9 @@ class AuthService:
username = f"{base_username}_ldap_{int(time.time())}{uuid.uuid4().hex[:4]}"
logger.info(f"LDAP 用户名冲突,使用新用户名: {ldap_user['username']} -> {username}")
# 读取系统配置的默认配额
default_quota = SystemConfigService.get_config(db, "default_user_quota_usd", default=10.0)
# 创建新用户
user = User(
email=email,
@@ -328,6 +332,7 @@ class AuthService:
role=UserRole.USER,
is_active=True,
last_login_at=datetime.now(timezone.utc),
quota_usd=default_quota,
)
try: