mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
perf: Optimize API permission validation
This commit is contained in:
committed by
fit2cloud-chenyw
parent
5732690a3b
commit
a6dcec08ab
@@ -18,6 +18,7 @@ from common.utils.utils import SQLBotLogUtil, prepare_model_arg
|
||||
router = APIRouter(tags=["system_model"], prefix="/system/aimodel")
|
||||
|
||||
@router.post("/status", include_in_schema=False)
|
||||
@require_permissions(permission=SqlbotPermission(role=['admin']))
|
||||
async def check_llm(info: AiModelCreator, trans: Trans):
|
||||
async def generate():
|
||||
try:
|
||||
@@ -92,6 +93,7 @@ async def query(
|
||||
return items
|
||||
|
||||
@router.get("/{id}", response_model=AiModelEditor, summary=f"{PLACEHOLDER_PREFIX}system_model_query", description=f"{PLACEHOLDER_PREFIX}system_model_query")
|
||||
@require_permissions(permission=SqlbotPermission(role=['admin']))
|
||||
async def get_model_by_id(
|
||||
session: SessionDep,
|
||||
id: int = Path(description="ID")
|
||||
|
||||
@@ -205,6 +205,12 @@ class TokenMiddleware(BaseHTTPMiddleware):
|
||||
return False, f"Miss account payload error!"
|
||||
account = payload['account']
|
||||
with Session(engine) as session:
|
||||
assistant_info = await get_assistant_info(session=session, assistant_id=embeddedId)
|
||||
assistant_info = AssistantModel.model_validate(assistant_info)
|
||||
payload = jwt.decode(
|
||||
param, assistant_info.app_secret, algorithms=[security.ALGORITHM]
|
||||
)
|
||||
assistant_info = AssistantHeader.model_validate(assistant_info.model_dump(exclude_unset=True))
|
||||
""" session_user = await get_user_info(session = session, user_id = token_data.id)
|
||||
session_user = UserInfoDTO.model_validate(session_user) """
|
||||
session_user = get_user_by_account(session = session, account=account)
|
||||
@@ -220,12 +226,7 @@ class TokenMiddleware(BaseHTTPMiddleware):
|
||||
if not session_user.oid or session_user.oid == 0:
|
||||
message = trans('i18n_login.no_associated_ws', msg = trans('i18n_concat_admin'))
|
||||
raise Exception(message)
|
||||
assistant_info = await get_assistant_info(session=session, assistant_id=embeddedId)
|
||||
assistant_info = AssistantModel.model_validate(assistant_info)
|
||||
payload = jwt.decode(
|
||||
param, assistant_info.app_secret, algorithms=[security.ALGORITHM]
|
||||
)
|
||||
assistant_info = AssistantHeader.model_validate(assistant_info.model_dump(exclude_unset=True))
|
||||
|
||||
return True, session_user, assistant_info
|
||||
except Exception as e:
|
||||
SQLBotLogUtil.exception(f"Embedded validation error: {str(e)}")
|
||||
|
||||
Reference in New Issue
Block a user