mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-13 21:05:19 +00:00
refac/enh: knowledge ac backend validation
This commit is contained in:
parent
71fd483fba
commit
32cb9df3c4
1 changed files with 25 additions and 0 deletions
|
|
@ -151,6 +151,18 @@ async def create_new_knowledge(
|
||||||
detail=ERROR_MESSAGES.UNAUTHORIZED,
|
detail=ERROR_MESSAGES.UNAUTHORIZED,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Check if user can share publicly
|
||||||
|
if (
|
||||||
|
user.role != "admin"
|
||||||
|
and form_data.access_control == None
|
||||||
|
and not has_permission(
|
||||||
|
user.id,
|
||||||
|
"sharing.public_knowledge",
|
||||||
|
request.app.state.config.USER_PERMISSIONS,
|
||||||
|
)
|
||||||
|
):
|
||||||
|
form_data.access_control = {}
|
||||||
|
|
||||||
knowledge = Knowledges.insert_new_knowledge(user.id, form_data)
|
knowledge = Knowledges.insert_new_knowledge(user.id, form_data)
|
||||||
|
|
||||||
if knowledge:
|
if knowledge:
|
||||||
|
|
@ -285,6 +297,7 @@ async def get_knowledge_by_id(id: str, user=Depends(get_verified_user)):
|
||||||
|
|
||||||
@router.post("/{id}/update", response_model=Optional[KnowledgeFilesResponse])
|
@router.post("/{id}/update", response_model=Optional[KnowledgeFilesResponse])
|
||||||
async def update_knowledge_by_id(
|
async def update_knowledge_by_id(
|
||||||
|
request: Request,
|
||||||
id: str,
|
id: str,
|
||||||
form_data: KnowledgeForm,
|
form_data: KnowledgeForm,
|
||||||
user=Depends(get_verified_user),
|
user=Depends(get_verified_user),
|
||||||
|
|
@ -306,6 +319,18 @@ async def update_knowledge_by_id(
|
||||||
detail=ERROR_MESSAGES.ACCESS_PROHIBITED,
|
detail=ERROR_MESSAGES.ACCESS_PROHIBITED,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Check if user can share publicly
|
||||||
|
if (
|
||||||
|
user.role != "admin"
|
||||||
|
and form_data.access_control == None
|
||||||
|
and not has_permission(
|
||||||
|
user.id,
|
||||||
|
"sharing.public_knowledge",
|
||||||
|
request.app.state.config.USER_PERMISSIONS,
|
||||||
|
)
|
||||||
|
):
|
||||||
|
form_data.access_control = {}
|
||||||
|
|
||||||
knowledge = Knowledges.update_knowledge_by_id(id=id, form_data=form_data)
|
knowledge = Knowledges.update_knowledge_by_id(id=id, form_data=form_data)
|
||||||
if knowledge:
|
if knowledge:
|
||||||
file_ids = knowledge.data.get("file_ids", []) if knowledge.data else []
|
file_ids = knowledge.data.get("file_ids", []) if knowledge.data else []
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue