fix: prevent token refresh when tenant is disabled
This commit is contained in:
@@ -19,18 +19,22 @@ class UserRepository:
|
||||
self.db = db
|
||||
|
||||
def get_user_by_id(self, user_id: uuid.UUID) -> Optional[User]:
|
||||
"""根据ID获取用户"""
|
||||
db_logger.debug(f"根据ID查询用户: user_id={user_id}")
|
||||
"""根据 ID 获取用户(租户禁用时返回 None)"""
|
||||
db_logger.debug(f"根据 ID 查询用户:user_id={user_id}")
|
||||
|
||||
try:
|
||||
user = self.db.query(User).options(joinedload(User.tenant)).filter(User.id == user_id).first()
|
||||
if user:
|
||||
db_logger.debug(f"用户查询成功: {user.username} (ID: {user_id})")
|
||||
# 检查租户状态,租户禁用时返回 None
|
||||
if user.tenant and not user.tenant.is_active:
|
||||
db_logger.warning(f"用户 {user.username} (ID: {user_id}) 所属租户 {user.tenant_id} 已被禁用")
|
||||
return None
|
||||
db_logger.debug(f"用户查询成功:{user.username} (ID: {user_id})")
|
||||
else:
|
||||
db_logger.debug(f"用户不存在: user_id={user_id}")
|
||||
db_logger.debug(f"用户不存在:user_id={user_id}")
|
||||
return user
|
||||
except Exception as e:
|
||||
db_logger.error(f"根据ID查询用户失败: user_id={user_id} - {str(e)}")
|
||||
db_logger.error(f"根据 ID 查询用户失败:user_id={user_id} - {str(e)}")
|
||||
raise
|
||||
|
||||
def get_user_by_email(self, email: str) -> Optional[User]:
|
||||
|
||||
Reference in New Issue
Block a user