mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-06 10:58:17 -05:00
[GH-ISSUE #17639] feat: Add Ability to Share OpenWeb UI Objects with Individual Users #57015
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @shgana on GitHub (Sep 22, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/17639
Check Existing Issues
Problem Description
Currently, Models, Knowledge Bases, and Prompts can only be shared with groups, not with individual users. This limitation creates several challenges:
Desired Solution you'd like
Implement the ability to share Models, Knowledge Bases, and Prompts with individual users directly, without requiring group creation.
The solution should:
According to discussion #15070, the backend already supports this functionality through the has_access function, which checks for both group and user IDs. The REST API can already accept user_ids, though this is not yet utilized by the frontend UI.
Alternatives Considered
Additional Context
Additional Context
From discussions #15070 and #12358, this feature has been considered previously but not yet implemented. The has_access function already contains logic to check for individual user access:
def has_access(
user_id: str,
type: str = "write",
access_control: Optional[dict] = None,
) -> bool:
if access_control is None:
return type == "read"
user_groups = Groups.get_groups_by_member_id(user_id)
user_group_ids = [group.id for group in user_groups]
permission_access = access_control.get(type, {})
permitted_group_ids = permission_access.get("group_ids", [])
permitted_user_ids = permission_access.get("user_ids", [])
return user_id in permitted_user_ids or any(
group_id in permitted_group_ids for group_id in user_group_ids
)
This indicates that implementing the frontend portion of this feature would complete functionality that is already partially supported in the backend.