|
9 | 9 | # from fastapi.security import OAuth2PasswordBearer |
10 | 10 | from jwt.exceptions import InvalidTokenError |
11 | 11 | from pydantic import ValidationError |
| 12 | +from sqlmodel import select |
12 | 13 |
|
13 | 14 | from apps.chat.api.chat import create_chat |
14 | 15 | from apps.chat.models.chat_model import ChatMcp, CreateChat, ChatStart |
15 | 16 | from apps.chat.task.llm import LLMService, run_task |
16 | | -from apps.system.crud.user import authenticate, get_user_info |
| 17 | +from apps.system.crud.user import authenticate |
| 18 | +from apps.system.crud.user import get_db_user |
| 19 | +from apps.system.models.system_model import UserWsModel |
| 20 | +from apps.system.models.user import UserModel |
17 | 21 | from apps.system.schemas.system_schema import BaseUserDTO |
18 | 22 | from apps.system.schemas.system_schema import UserInfoDTO |
19 | 23 | from common.core import security |
@@ -83,7 +87,17 @@ async def mcp_question(session: SessionDep, chat: ChatMcp): |
83 | 87 | status_code=status.HTTP_403_FORBIDDEN, |
84 | 88 | detail="Could not validate credentials", |
85 | 89 | ) |
86 | | - session_user = await get_user_info(session=session, user_id=token_data.id) |
| 90 | + # session_user = await get_user_info(session=session, user_id=token_data.id) |
| 91 | + |
| 92 | + db_user: UserModel = get_db_user(session=session, user_id=token_data.id) |
| 93 | + session_user = UserInfoDTO.model_validate(db_user.model_dump()) |
| 94 | + session_user.isAdmin = session_user.id == 1 and session_user.account == 'admin' |
| 95 | + if session_user.isAdmin: |
| 96 | + session_user = session_user |
| 97 | + ws_model: UserWsModel = session.exec( |
| 98 | + select(UserWsModel).where(UserWsModel.uid == session_user.id, UserWsModel.oid == session_user.oid)).first() |
| 99 | + session_user.weight = ws_model.weight if ws_model else -1 |
| 100 | + |
87 | 101 | session_user = UserInfoDTO.model_validate(session_user) |
88 | 102 | if not session_user: |
89 | 103 | raise HTTPException(status_code=404, detail="User not found") |
|
0 commit comments