diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index 7eb43eb96f..2fc05cf8eb 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -1217,6 +1217,11 @@ USER_PERMISSIONS_WORKSPACE_MODELS_ALLOW_PUBLIC_SHARING = ( == "true" ) +USER_PERMISSIONS_NOTES_ALLOW_PUBLIC_SHARING = ( + os.environ.get("USER_PERMISSIONS_NOTES_ALLOW_PUBLIC_SHARING", "False").lower() + == "true" +) + USER_PERMISSIONS_WORKSPACE_KNOWLEDGE_ALLOW_PUBLIC_SHARING = ( os.environ.get( "USER_PERMISSIONS_WORKSPACE_KNOWLEDGE_ALLOW_PUBLIC_SHARING", "False" @@ -1354,6 +1359,7 @@ DEFAULT_USER_PERMISSIONS = { "public_knowledge": USER_PERMISSIONS_WORKSPACE_KNOWLEDGE_ALLOW_PUBLIC_SHARING, "public_prompts": USER_PERMISSIONS_WORKSPACE_PROMPTS_ALLOW_PUBLIC_SHARING, "public_tools": USER_PERMISSIONS_WORKSPACE_TOOLS_ALLOW_PUBLIC_SHARING, + "public_notes": USER_PERMISSIONS_NOTES_ALLOW_PUBLIC_SHARING, }, "chat": { "controls": USER_PERMISSIONS_CHAT_CONTROLS, diff --git a/backend/open_webui/routers/notes.py b/backend/open_webui/routers/notes.py index 0c420e4f12..3858c4670f 100644 --- a/backend/open_webui/routers/notes.py +++ b/backend/open_webui/routers/notes.py @@ -180,6 +180,18 @@ async def update_note_by_id( status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT() ) + # Check if user can share publicly + if ( + user.role != "admin" + and form_data.access_control == None + and not has_permission( + user.id, + "sharing.public_notes", + request.app.state.config.USER_PERMISSIONS, + ) + ): + form_data.access_control = {} + try: note = Notes.update_note_by_id(id, form_data) await sio.emit( diff --git a/backend/open_webui/routers/users.py b/backend/open_webui/routers/users.py index 9a0f8c6aaf..2dd229eeb7 100644 --- a/backend/open_webui/routers/users.py +++ b/backend/open_webui/routers/users.py @@ -157,6 +157,7 @@ class SharingPermissions(BaseModel): public_knowledge: bool = True public_prompts: bool = True public_tools: bool = True + public_notes: bool = True class ChatPermissions(BaseModel): diff --git a/src/lib/components/admin/Users/Groups/Permissions.svelte b/src/lib/components/admin/Users/Groups/Permissions.svelte index af0dc1f97f..b7f7c3093f 100644 --- a/src/lib/components/admin/Users/Groups/Permissions.svelte +++ b/src/lib/components/admin/Users/Groups/Permissions.svelte @@ -17,7 +17,8 @@ public_models: false, public_knowledge: false, public_prompts: false, - public_tools: false + public_tools: false, + public_notes: false }, chat: { controls: true, @@ -247,6 +248,13 @@ + +
+
+ {$i18n.t('Notes Public Sharing')} +
+ +