diff --git a/backend/app/admin/service/auth_service.py b/backend/app/admin/service/auth_service.py index 796a6782..6c70b550 100644 --- a/backend/app/admin/service/auth_service.py +++ b/backend/app/admin/service/auth_service.py @@ -75,7 +75,7 @@ class AuthService: await user_dao.update_login_time(db, obj.username) access_token_data = await create_access_token( user.id, - getattr(user, 'tenant_id', settings.TENANT_DEFAULT_ID), + user.tenant_id, multi_login=user.is_multi_login, # extra info swagger=True, diff --git a/backend/common/security/jwt.py b/backend/common/security/jwt.py index 178164c1..06ecfa76 100644 --- a/backend/common/security/jwt.py +++ b/backend/common/security/jwt.py @@ -266,6 +266,10 @@ async def get_current_user(db: AsyncSession, pk: int) -> User: raise errors.TokenError(msg='Token 无效') if not user.status: raise errors.AuthorizationError(msg='用户已被锁定,请联系系统管理员') + + if settings.TENANT_ENABLED: + await check_tenant_status(db, user.tenant_id) + if user.dept and user.dept_id: if not user.dept.status: raise errors.AuthorizationError(msg='用户所属部门已被锁定,请联系系统管理员') @@ -275,10 +279,6 @@ async def get_current_user(db: AsyncSession, pk: int) -> User: role_status = [role.status for role in user.roles] if all(status == 0 for status in role_status): raise errors.AuthorizationError(msg='用户所属角色已被锁定,请联系系统管理员') - - if hasattr(user, 'tenant_id'): - await check_tenant_status(db, user.tenant_id) - return user