refac
This commit is contained in:
@@ -19,6 +19,9 @@ from fastapi.responses import (
|
||||
)
|
||||
from pydantic import BaseModel
|
||||
from starlette.background import BackgroundTask
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from open_webui.internal.db import get_session
|
||||
|
||||
from open_webui.models.models import Models
|
||||
from open_webui.config import (
|
||||
@@ -457,7 +460,7 @@ async def get_filtered_models(models, user, db=None):
|
||||
# Filter models based on user access control
|
||||
filtered_models = []
|
||||
for model in models.get("data", []):
|
||||
model_info = Models.get_model_by_id(model["id"])
|
||||
model_info = Models.get_model_by_id(model["id"], db=db)
|
||||
if model_info:
|
||||
if user.id == model_info.user_id or has_access(
|
||||
user.id, type="read", access_control=model_info.access_control, db=db
|
||||
@@ -797,6 +800,7 @@ async def generate_chat_completion(
|
||||
form_data: dict,
|
||||
user=Depends(get_verified_user),
|
||||
bypass_filter: Optional[bool] = False,
|
||||
db: Session = Depends(get_session),
|
||||
):
|
||||
if BYPASS_MODEL_ACCESS_CONTROL:
|
||||
bypass_filter = True
|
||||
@@ -807,7 +811,7 @@ async def generate_chat_completion(
|
||||
metadata = payload.pop("metadata", None)
|
||||
|
||||
model_id = form_data.get("model")
|
||||
model_info = Models.get_model_by_id(model_id)
|
||||
model_info = Models.get_model_by_id(model_id, db=db)
|
||||
|
||||
# Check model info and override the payload
|
||||
if model_info:
|
||||
@@ -833,7 +837,7 @@ async def generate_chat_completion(
|
||||
if not (
|
||||
user.id == model_info.user_id
|
||||
or has_access(
|
||||
user.id, type="read", access_control=model_info.access_control
|
||||
user.id, type="read", access_control=model_info.access_control, db=db
|
||||
)
|
||||
):
|
||||
raise HTTPException(
|
||||
|
||||
Reference in New Issue
Block a user