diff --git a/backend/open_webui/socket/main.py b/backend/open_webui/socket/main.py index 57b952e7fd..ced2a9972b 100644 --- a/backend/open_webui/socket/main.py +++ b/backend/open_webui/socket/main.py @@ -353,8 +353,12 @@ async def yjs_document_join(sid, data): log.error(f"Note {note_id} not found") return - if user.get("role") != "admin" and has_access( - user.get("id"), type="read", access_control=note.access_control + if ( + user.get("role") != "admin" + and user.get("id") != note.user_id + and not has_access( + user.get("id"), type="read", access_control=note.access_control + ) ): log.error( f"User {user.get('id')} does not have access to note {note_id}" @@ -424,8 +428,12 @@ async def document_save_handler(document_id, data, user): log.error(f"Note {note_id} not found") return - if user.get("role") != "admin" and has_access( - user.get("id"), type="read", access_control=note.access_control + if ( + user.get("role") != "admin" + and user.get("id") != note.user_id + and not has_access( + user.get("id"), type="read", access_control=note.access_control + ) ): log.error(f"User {user.get('id')} does not have access to note {note_id}") return