mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 01:10:23 +08:00
feat: LDAP 用户隐藏密码修改功能并应用默认配额
- /me API 返回 auth_source 字段 - 前端 Settings 页面对 LDAP 用户隐藏密码修改卡片 - LDAP 用户首次登录创建时使用系统默认配额 Close #98
This commit is contained in:
@@ -11,8 +11,9 @@ export interface Profile {
|
|||||||
used_usd: number
|
used_usd: number
|
||||||
total_usd?: number // 累积消费总额
|
total_usd?: number // 累积消费总额
|
||||||
created_at: string
|
created_at: string
|
||||||
updated_at: string
|
updated_at?: string
|
||||||
last_login_at?: string
|
last_login_at?: string
|
||||||
|
auth_source?: 'local' | 'ldap'
|
||||||
preferences?: UserPreferences
|
preferences?: UserPreferences
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,8 +69,11 @@
|
|||||||
</form>
|
</form>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<!-- 修改密码 -->
|
<!-- 修改密码 (LDAP 用户不显示) -->
|
||||||
<Card class="p-6">
|
<Card
|
||||||
|
v-if="profile?.auth_source !== 'ldap'"
|
||||||
|
class="p-6"
|
||||||
|
>
|
||||||
<h3 class="text-lg font-medium text-foreground mb-4">
|
<h3 class="text-lg font-medium text-foreground mb-4">
|
||||||
修改密码
|
修改密码
|
||||||
</h3>
|
</h3>
|
||||||
|
|||||||
@@ -536,6 +536,7 @@ class AuthCurrentUserAdapter(AuthenticatedApiAdapter):
|
|||||||
"allowed_models": user.allowed_models,
|
"allowed_models": user.allowed_models,
|
||||||
"created_at": user.created_at.isoformat(),
|
"created_at": user.created_at.isoformat(),
|
||||||
"last_login_at": user.last_login_at.isoformat() if user.last_login_at else None,
|
"last_login_at": user.last_login_at.isoformat() if user.last_login_at else None,
|
||||||
|
"auth_source": user.auth_source.value,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ from sqlalchemy.orm import Session, joinedload
|
|||||||
from src.config import config
|
from src.config import config
|
||||||
from src.core.logger import logger
|
from src.core.logger import logger
|
||||||
from src.core.enums import AuthSource
|
from src.core.enums import AuthSource
|
||||||
|
from src.services.system.config import SystemConfigService
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from src.models.database import ManagementToken
|
from src.models.database import ManagementToken
|
||||||
@@ -317,6 +318,9 @@ class AuthService:
|
|||||||
username = f"{base_username}_ldap_{int(time.time())}{uuid.uuid4().hex[:4]}"
|
username = f"{base_username}_ldap_{int(time.time())}{uuid.uuid4().hex[:4]}"
|
||||||
logger.info(f"LDAP 用户名冲突,使用新用户名: {ldap_user['username']} -> {username}")
|
logger.info(f"LDAP 用户名冲突,使用新用户名: {ldap_user['username']} -> {username}")
|
||||||
|
|
||||||
|
# 读取系统配置的默认配额
|
||||||
|
default_quota = SystemConfigService.get_config(db, "default_user_quota_usd", default=10.0)
|
||||||
|
|
||||||
# 创建新用户
|
# 创建新用户
|
||||||
user = User(
|
user = User(
|
||||||
email=email,
|
email=email,
|
||||||
@@ -328,6 +332,7 @@ class AuthService:
|
|||||||
role=UserRole.USER,
|
role=UserRole.USER,
|
||||||
is_active=True,
|
is_active=True,
|
||||||
last_login_at=datetime.now(timezone.utc),
|
last_login_at=datetime.now(timezone.utc),
|
||||||
|
quota_usd=default_quota,
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user