From 3e3c5b6d78524e4d2711a39d0f59ce68278501e6 Mon Sep 17 00:00:00 2001 From: G30 <50341825+silentoplayz@users.noreply.github.com> Date: Tue, 16 Jun 2026 18:28:17 -0400 Subject: [PATCH] fix(permissions): add admin bypass to memories permission checks (#25924) --- backend/open_webui/routers/memories.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/open_webui/routers/memories.py b/backend/open_webui/routers/memories.py index aad881b6da..9f2623631f 100644 --- a/backend/open_webui/routers/memories.py +++ b/backend/open_webui/routers/memories.py @@ -39,7 +39,7 @@ async def get_memories( detail=ERROR_MESSAGES.NOT_FOUND, ) - if not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): + if user.role != 'admin' and not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.ACCESS_PROHIBITED, @@ -79,7 +79,7 @@ async def add_memory( detail=ERROR_MESSAGES.NOT_FOUND, ) - if not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): + if user.role != 'admin' and not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.ACCESS_PROHIBITED, @@ -130,7 +130,7 @@ async def query_memory( detail=ERROR_MESSAGES.NOT_FOUND, ) - if not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): + if user.role != 'admin' and not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.ACCESS_PROHIBITED, @@ -205,7 +205,7 @@ async def reset_memory_from_vector_db( detail=ERROR_MESSAGES.NOT_FOUND, ) - if not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): + if user.role != 'admin' and not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.ACCESS_PROHIBITED, @@ -256,7 +256,7 @@ async def delete_memory_by_user_id( detail=ERROR_MESSAGES.NOT_FOUND, ) - if not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): + if user.role != 'admin' and not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.ACCESS_PROHIBITED, @@ -296,7 +296,7 @@ async def update_memory_by_id( detail=ERROR_MESSAGES.NOT_FOUND, ) - if not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): + if user.role != 'admin' and not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.ACCESS_PROHIBITED, @@ -345,7 +345,7 @@ async def delete_memory_by_id( detail=ERROR_MESSAGES.NOT_FOUND, ) - if not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): + if user.role != 'admin' and not await has_permission(user.id, 'features.memories', request.app.state.config.USER_PERMISSIONS): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.ACCESS_PROHIBITED,