Skip to content

Commit d7e0b22

Browse files
committed
fix: 修复删除用户异常的问题
1 parent af7355c commit d7e0b22

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

server/routers/auth_router.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from sqlalchemy.orm import Session
88

99
from src.storage.db.manager import db_manager
10-
from src.storage.db.models import User
10+
from src.storage.db.models import User, OperationLog
1111
from server.utils.auth_middleware import get_admin_user, get_current_user, get_db, get_required_user
1212
from server.utils.auth_utils import AuthUtils
1313
from server.utils.user_utils import generate_unique_user_id, validate_username, is_valid_phone_number
@@ -503,15 +503,18 @@ async def delete_user(
503503
detail="不能删除自己的账户",
504504
)
505505

506-
# 记录操作
507-
log_operation(
508-
db, current_user.id, "删除用户", f"删除用户: {user.username}, ID: {user.id}, 角色: {user.role}", request
509-
)
506+
deletion_detail = f"删除用户: {user.username}, ID: {user.id}, 角色: {user.role}"
507+
508+
# 清理关联的操作日志,避免外键约束报错
509+
db.query(OperationLog).filter(OperationLog.user_id == user.id).delete(synchronize_session=False)
510510

511511
# 删除用户
512512
db.delete(user)
513513
db.commit()
514514

515+
# 记录操作
516+
log_operation(db, current_user.id, "删除用户", deletion_detail, request)
517+
515518
return {"success": True, "message": "用户已删除"}
516519

517520

src/storage/db/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ class User(Base):
176176
login_locked_until = Column(DateTime, nullable=True) # 锁定到什么时候
177177

178178
# 关联操作日志
179-
operation_logs = relationship("OperationLog", back_populates="user")
179+
operation_logs = relationship("OperationLog", back_populates="user", cascade="all, delete-orphan")
180180

181181
def to_dict(self, include_password=False):
182182
result = {

0 commit comments

Comments
 (0)