mirror of
https://github.com/open-webui/open-webui
synced 2025-06-23 02:16:52 +00:00
feat: public sharing permissions
This commit is contained in:
parent
3ba12e7a43
commit
50b3f47f81
@ -980,6 +980,35 @@ USER_PERMISSIONS_WORKSPACE_TOOLS_ACCESS = (
|
|||||||
os.environ.get("USER_PERMISSIONS_WORKSPACE_TOOLS_ACCESS", "False").lower() == "true"
|
os.environ.get("USER_PERMISSIONS_WORKSPACE_TOOLS_ACCESS", "False").lower() == "true"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
USER_PERMISSIONS_WORKSPACE_MODELS_ALLOW_PUBLIC_SHARING = (
|
||||||
|
os.environ.get(
|
||||||
|
"USER_PERMISSIONS_WORKSPACE_MODELS_ALLOW_PUBLIC_SHARING", "False"
|
||||||
|
).lower()
|
||||||
|
== "true"
|
||||||
|
)
|
||||||
|
|
||||||
|
USER_PERMISSIONS_WORKSPACE_KNOWLEDGE_ALLOW_PUBLIC_SHARING = (
|
||||||
|
os.environ.get(
|
||||||
|
"USER_PERMISSIONS_WORKSPACE_KNOWLEDGE_ALLOW_PUBLIC_SHARING", "False"
|
||||||
|
).lower()
|
||||||
|
== "true"
|
||||||
|
)
|
||||||
|
|
||||||
|
USER_PERMISSIONS_WORKSPACE_PROMPTS_ALLOW_PUBLIC_SHARING = (
|
||||||
|
os.environ.get(
|
||||||
|
"USER_PERMISSIONS_WORKSPACE_PROMPTS_ALLOW_PUBLIC_SHARING", "False"
|
||||||
|
).lower()
|
||||||
|
== "true"
|
||||||
|
)
|
||||||
|
|
||||||
|
USER_PERMISSIONS_WORKSPACE_TOOLS_ALLOW_PUBLIC_SHARING = (
|
||||||
|
os.environ.get(
|
||||||
|
"USER_PERMISSIONS_WORKSPACE_TOOLS_ALLOW_PUBLIC_SHARING", "False"
|
||||||
|
).lower()
|
||||||
|
== "true"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
USER_PERMISSIONS_CHAT_CONTROLS = (
|
USER_PERMISSIONS_CHAT_CONTROLS = (
|
||||||
os.environ.get("USER_PERMISSIONS_CHAT_CONTROLS", "True").lower() == "true"
|
os.environ.get("USER_PERMISSIONS_CHAT_CONTROLS", "True").lower() == "true"
|
||||||
)
|
)
|
||||||
@ -1000,6 +1029,7 @@ USER_PERMISSIONS_CHAT_TEMPORARY = (
|
|||||||
os.environ.get("USER_PERMISSIONS_CHAT_TEMPORARY", "True").lower() == "true"
|
os.environ.get("USER_PERMISSIONS_CHAT_TEMPORARY", "True").lower() == "true"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
USER_PERMISSIONS_FEATURES_WEB_SEARCH = (
|
USER_PERMISSIONS_FEATURES_WEB_SEARCH = (
|
||||||
os.environ.get("USER_PERMISSIONS_FEATURES_WEB_SEARCH", "True").lower() == "true"
|
os.environ.get("USER_PERMISSIONS_FEATURES_WEB_SEARCH", "True").lower() == "true"
|
||||||
)
|
)
|
||||||
@ -1022,6 +1052,12 @@ DEFAULT_USER_PERMISSIONS = {
|
|||||||
"prompts": USER_PERMISSIONS_WORKSPACE_PROMPTS_ACCESS,
|
"prompts": USER_PERMISSIONS_WORKSPACE_PROMPTS_ACCESS,
|
||||||
"tools": USER_PERMISSIONS_WORKSPACE_TOOLS_ACCESS,
|
"tools": USER_PERMISSIONS_WORKSPACE_TOOLS_ACCESS,
|
||||||
},
|
},
|
||||||
|
"sharing": {
|
||||||
|
"public_models": USER_PERMISSIONS_WORKSPACE_MODELS_ALLOW_PUBLIC_SHARING,
|
||||||
|
"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,
|
||||||
|
},
|
||||||
"chat": {
|
"chat": {
|
||||||
"controls": USER_PERMISSIONS_CHAT_CONTROLS,
|
"controls": USER_PERMISSIONS_CHAT_CONTROLS,
|
||||||
"file_upload": USER_PERMISSIONS_CHAT_FILE_UPLOAD,
|
"file_upload": USER_PERMISSIONS_CHAT_FILE_UPLOAD,
|
||||||
|
@ -76,6 +76,13 @@ class WorkspacePermissions(BaseModel):
|
|||||||
tools: bool = False
|
tools: bool = False
|
||||||
|
|
||||||
|
|
||||||
|
class SharingPermissions(BaseModel):
|
||||||
|
public_models: bool = True
|
||||||
|
public_knowledge: bool = True
|
||||||
|
public_prompts: bool = True
|
||||||
|
public_tools: bool = True
|
||||||
|
|
||||||
|
|
||||||
class ChatPermissions(BaseModel):
|
class ChatPermissions(BaseModel):
|
||||||
controls: bool = True
|
controls: bool = True
|
||||||
file_upload: bool = True
|
file_upload: bool = True
|
||||||
@ -92,6 +99,7 @@ class FeaturesPermissions(BaseModel):
|
|||||||
|
|
||||||
class UserPermissions(BaseModel):
|
class UserPermissions(BaseModel):
|
||||||
workspace: WorkspacePermissions
|
workspace: WorkspacePermissions
|
||||||
|
sharing: SharingPermissions
|
||||||
chat: ChatPermissions
|
chat: ChatPermissions
|
||||||
features: FeaturesPermissions
|
features: FeaturesPermissions
|
||||||
|
|
||||||
@ -102,6 +110,9 @@ async def get_default_user_permissions(request: Request, user=Depends(get_admin_
|
|||||||
"workspace": WorkspacePermissions(
|
"workspace": WorkspacePermissions(
|
||||||
**request.app.state.config.USER_PERMISSIONS.get("workspace", {})
|
**request.app.state.config.USER_PERMISSIONS.get("workspace", {})
|
||||||
),
|
),
|
||||||
|
"sharing": SharingPermissions(
|
||||||
|
**request.app.state.config.USER_PERMISSIONS.get("sharing", {})
|
||||||
|
),
|
||||||
"chat": ChatPermissions(
|
"chat": ChatPermissions(
|
||||||
**request.app.state.config.USER_PERMISSIONS.get("chat", {})
|
**request.app.state.config.USER_PERMISSIONS.get("chat", {})
|
||||||
),
|
),
|
||||||
|
@ -13,6 +13,12 @@
|
|||||||
prompts: false,
|
prompts: false,
|
||||||
tools: false
|
tools: false
|
||||||
},
|
},
|
||||||
|
sharing: {
|
||||||
|
public_models: false,
|
||||||
|
public_knowledge: false,
|
||||||
|
public_prompts: false,
|
||||||
|
public_tools: false
|
||||||
|
},
|
||||||
chat: {
|
chat: {
|
||||||
controls: true,
|
controls: true,
|
||||||
delete: true,
|
delete: true,
|
||||||
@ -39,6 +45,7 @@
|
|||||||
...defaults,
|
...defaults,
|
||||||
...obj,
|
...obj,
|
||||||
workspace: { ...defaults.workspace, ...obj.workspace },
|
workspace: { ...defaults.workspace, ...obj.workspace },
|
||||||
|
sharing: { ...defaults.sharing, ...obj.sharing },
|
||||||
chat: { ...defaults.chat, ...obj.chat },
|
chat: { ...defaults.chat, ...obj.chat },
|
||||||
features: { ...defaults.features, ...obj.features }
|
features: { ...defaults.features, ...obj.features }
|
||||||
};
|
};
|
||||||
@ -194,6 +201,40 @@
|
|||||||
|
|
||||||
<hr class=" border-gray-100 dark:border-gray-850 my-2" />
|
<hr class=" border-gray-100 dark:border-gray-850 my-2" />
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class=" mb-2 text-sm font-medium">{$i18n.t('Sharing Permissions')}</div>
|
||||||
|
|
||||||
|
<div class=" flex w-full justify-between my-2 pr-2">
|
||||||
|
<div class=" self-center text-xs font-medium">
|
||||||
|
{$i18n.t('Models Public Sharing')}
|
||||||
|
</div>
|
||||||
|
<Switch bind:state={permissions.sharing.public_models} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class=" flex w-full justify-between my-2 pr-2">
|
||||||
|
<div class=" self-center text-xs font-medium">
|
||||||
|
{$i18n.t('Knowledge Public Sharing')}
|
||||||
|
</div>
|
||||||
|
<Switch bind:state={permissions.sharing.public_knowledge} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class=" flex w-full justify-between my-2 pr-2">
|
||||||
|
<div class=" self-center text-xs font-medium">
|
||||||
|
{$i18n.t('Prompts Public Sharing')}
|
||||||
|
</div>
|
||||||
|
<Switch bind:state={permissions.sharing.public_prompts} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class=" flex w-full justify-between my-2 pr-2">
|
||||||
|
<div class=" self-center text-xs font-medium">
|
||||||
|
{$i18n.t('Tools Public Sharing')}
|
||||||
|
</div>
|
||||||
|
<Switch bind:state={permissions.sharing.public_tools} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class=" border-gray-100 dark:border-gray-850 my-2" />
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class=" mb-2 text-sm font-medium">{$i18n.t('Chat Permissions')}</div>
|
<div class=" mb-2 text-sm font-medium">{$i18n.t('Chat Permissions')}</div>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user