This PR introduces permissions for "Private Sharing" of Workspace entities. If Private Sharing is allowed for a Group, a member of that Group can share their creations with this Group. "Private Sharing" can be toggled independently for each Workspace component.
Documentation
Documentation has not yet been updated.
Dependencies
This PR introduces no new external dependencies.
Testing
I have not written any tests but have validated the intended behavior manually.
Code review
I have self-reviewed my code, and tried to adhere to existing style and coding standards
Changelog Entry
Description
This PR addresses the points mentioned in discussion #15100 by introducing the concept of "Private Sharing" permissions: A Group now has an additional set of permissions that govern whether members of this Group can share Workspace creations with the Group privately.
With this feature, the following scenarios can be avoided by deactivating private sharing permissions (from the discussion linked above):
Universities: Students in a shared "Students" group can spam each other's interfaces by sharing personal models, uploading irrelevant knowledge bases, creating joke prompts, or publishing buggy tools
Large organizations: Employees can flood departmental groups with personal workspace items, making it difficult for colleagues to find legitimate shared resources
Multi-tenant environments: Users can clutter shared spaces with experimental or low-quality content that affects the entire group's productivity
Added
A set of permissions on Groups that govern privately sharing Workspace entities within the group
Changed
Added a prop allowedPrivate to AccessControl: This array holds the IDs of all groups that should appear in the group selector when sharing is set to Private.
Added the same prop to AccessControlModal (a little bit of prop drilling, but follows existing patterns)
Initialized allowedPrivate in all components that use an AccessControl or AccessControlModal:
If the component is part of one of the Workspace entities, use the new permissions to find the appropriate groups for private sharing (or all if admin)
If the component is not one of the Workspace entities (e.g. non-direct Tool Server connections, Notes, ...), allow all groups for private sharing.
Screenshots or Videos
The new options in the Permissions dialog:
Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/open-webui/open-webui/pull/17410
**Author:** [@Simon-Stone](https://github.com/Simon-Stone)
**Created:** 9/12/2025
**Status:** 🔄 Open
**Base:** `dev` ← **Head:** `workspace-private-sharing-permissions`
---
### 📝 Commits (2)
- [`874fa58`](https://github.com/open-webui/open-webui/commit/874fa58f6d32ca72347ce2aa948df0f13679d9a9) adds private sharing toggles
- [`97ce48d`](https://github.com/open-webui/open-webui/commit/97ce48def3b948dfb113fb8ac4c7591b29a85d92) only show groups that allow private sharing in access control dropdown.
### 📊 Changes
**14 files changed** (+156 additions, -24 deletions)
<details>
<summary>View changed files</summary>
📝 `src/lib/components/AddServerModal.svelte` (+9 -2)
📝 `src/lib/components/admin/Settings/Evaluations/ArenaModelModal.svelte` (+9 -2)
📝 `src/lib/components/admin/Users/Groups.svelte` (+6 -1)
📝 `src/lib/components/admin/Users/Groups/EditGroupModal.svelte` (+1 -1)
📝 `src/lib/components/admin/Users/Groups/Permissions.svelte` (+53 -13)
📝 `src/lib/components/layout/Sidebar/ChannelModal.svelte` (+10 -1)
📝 `src/lib/components/notes/NoteEditor.svelte` (+8 -0)
📝 `src/lib/components/workspace/Knowledge/CreateKnowledgeBase.svelte` (+12 -1)
📝 `src/lib/components/workspace/Knowledge/KnowledgeBase.svelte` (+10 -0)
📝 `src/lib/components/workspace/Models/ModelEditor.svelte` (+10 -0)
📝 `src/lib/components/workspace/Prompts/PromptEditor.svelte` (+9 -0)
📝 `src/lib/components/workspace/Tools/ToolkitEditor.svelte` (+14 -1)
📝 `src/lib/components/workspace/common/AccessControl.svelte` (+3 -1)
📝 `src/lib/components/workspace/common/AccessControlModal.svelte` (+2 -1)
</details>
### 📄 Description
##
# Description
This PR introduces permissions for "Private Sharing" of Workspace entities. If Private Sharing is allowed for a Group, a member of that Group can share their creations with this Group. "Private Sharing" can be toggled independently for each Workspace component.
## Documentation
Documentation has not yet been updated.
## Dependencies
This PR introduces no new external dependencies.
## Testing
I have not written any tests but have validated the intended behavior manually.
## Code review
I have self-reviewed my code, and tried to adhere to existing style and coding standards
# Changelog Entry
### Description
This PR addresses the points mentioned in discussion #15100 by introducing the concept of "Private Sharing" permissions: A Group now has an additional set of permissions that govern whether members of this Group can share Workspace creations with the Group privately.
With this feature, the following scenarios can be avoided by deactivating private sharing permissions (from the discussion linked above):
> **Universities:** Students in a shared "Students" group can spam each other's interfaces by sharing personal models, uploading irrelevant knowledge bases, creating joke prompts, or publishing buggy tools
>
> **Large organizations:** Employees can flood departmental groups with personal workspace items, making it difficult for colleagues to find legitimate shared resources
>
> **Multi-tenant environments:** Users can clutter shared spaces with experimental or low-quality content that affects the entire group's productivity
### Added
- A set of permissions on Groups that govern privately sharing Workspace entities within the group
### Changed
- Added a prop `allowedPrivate` to `AccessControl`: This array holds the IDs of all groups that should appear in the group selector when sharing is set to Private.
- Added the same prop to `AccessControlModal` (a little bit of prop drilling, but follows existing patterns)
- Initialized `allowedPrivate` in all components that use an `AccessControl` or `AccessControlModal`:
- If the component is part of one of the Workspace entities, use the new permissions to find the appropriate groups for private sharing (or all if admin)
- If the component is not one of the Workspace entities (e.g. non-direct Tool Server connections, Notes, ...), allow all groups for private sharing.
---
### Screenshots or Videos
The new options in the Permissions dialog:
<img width="687" height="485" alt="permissions dialog" src="https://github.com/user-attachments/assets/c07636fa-10c3-42b0-ae54-183a72b38d35" />
### Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/17410
Author: @Simon-Stone
Created: 9/12/2025
Status: 🔄 Open
Base:
dev← Head:workspace-private-sharing-permissions📝 Commits (2)
874fa58adds private sharing toggles97ce48donly show groups that allow private sharing in access control dropdown.📊 Changes
14 files changed (+156 additions, -24 deletions)
View changed files
📝
src/lib/components/AddServerModal.svelte(+9 -2)📝
src/lib/components/admin/Settings/Evaluations/ArenaModelModal.svelte(+9 -2)📝
src/lib/components/admin/Users/Groups.svelte(+6 -1)📝
src/lib/components/admin/Users/Groups/EditGroupModal.svelte(+1 -1)📝
src/lib/components/admin/Users/Groups/Permissions.svelte(+53 -13)📝
src/lib/components/layout/Sidebar/ChannelModal.svelte(+10 -1)📝
src/lib/components/notes/NoteEditor.svelte(+8 -0)📝
src/lib/components/workspace/Knowledge/CreateKnowledgeBase.svelte(+12 -1)📝
src/lib/components/workspace/Knowledge/KnowledgeBase.svelte(+10 -0)📝
src/lib/components/workspace/Models/ModelEditor.svelte(+10 -0)📝
src/lib/components/workspace/Prompts/PromptEditor.svelte(+9 -0)📝
src/lib/components/workspace/Tools/ToolkitEditor.svelte(+14 -1)📝
src/lib/components/workspace/common/AccessControl.svelte(+3 -1)📝
src/lib/components/workspace/common/AccessControlModal.svelte(+2 -1)📄 Description
Description
This PR introduces permissions for "Private Sharing" of Workspace entities. If Private Sharing is allowed for a Group, a member of that Group can share their creations with this Group. "Private Sharing" can be toggled independently for each Workspace component.
Documentation
Documentation has not yet been updated.
Dependencies
This PR introduces no new external dependencies.
Testing
I have not written any tests but have validated the intended behavior manually.
Code review
I have self-reviewed my code, and tried to adhere to existing style and coding standards
Changelog Entry
Description
This PR addresses the points mentioned in discussion #15100 by introducing the concept of "Private Sharing" permissions: A Group now has an additional set of permissions that govern whether members of this Group can share Workspace creations with the Group privately.
With this feature, the following scenarios can be avoided by deactivating private sharing permissions (from the discussion linked above):
Added
Changed
allowedPrivatetoAccessControl: This array holds the IDs of all groups that should appear in the group selector when sharing is set to Private.AccessControlModal(a little bit of prop drilling, but follows existing patterns)allowedPrivatein all components that use anAccessControlorAccessControlModal:Screenshots or Videos
The new options in the Permissions dialog:
Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.