This commit is contained in:
Timothy Jaeryang Baek
2026-02-22 19:16:35 -06:00
parent e7848ec712
commit 2558fe1a3b
5 changed files with 32 additions and 7 deletions
+5
View File
@@ -1454,6 +1454,10 @@ USER_PERMISSIONS_CHAT_FILE_UPLOAD = (
os.environ.get("USER_PERMISSIONS_CHAT_FILE_UPLOAD", "True").lower() == "true" os.environ.get("USER_PERMISSIONS_CHAT_FILE_UPLOAD", "True").lower() == "true"
) )
USER_PERMISSIONS_CHAT_WEB_UPLOAD = (
os.environ.get("USER_PERMISSIONS_CHAT_WEB_UPLOAD", "True").lower() == "true"
)
USER_PERMISSIONS_CHAT_DELETE = ( USER_PERMISSIONS_CHAT_DELETE = (
os.environ.get("USER_PERMISSIONS_CHAT_DELETE", "True").lower() == "true" os.environ.get("USER_PERMISSIONS_CHAT_DELETE", "True").lower() == "true"
) )
@@ -1592,6 +1596,7 @@ DEFAULT_USER_PERMISSIONS = {
"system_prompt": USER_PERMISSIONS_CHAT_SYSTEM_PROMPT, "system_prompt": USER_PERMISSIONS_CHAT_SYSTEM_PROMPT,
"params": USER_PERMISSIONS_CHAT_PARAMS, "params": USER_PERMISSIONS_CHAT_PARAMS,
"file_upload": USER_PERMISSIONS_CHAT_FILE_UPLOAD, "file_upload": USER_PERMISSIONS_CHAT_FILE_UPLOAD,
"web_upload": USER_PERMISSIONS_CHAT_WEB_UPLOAD,
"delete": USER_PERMISSIONS_CHAT_DELETE, "delete": USER_PERMISSIONS_CHAT_DELETE,
"delete_message": USER_PERMISSIONS_CHAT_DELETE_MESSAGE, "delete_message": USER_PERMISSIONS_CHAT_DELETE_MESSAGE,
"continue_response": USER_PERMISSIONS_CHAT_CONTINUE_RESPONSE, "continue_response": USER_PERMISSIONS_CHAT_CONTINUE_RESPONSE,
+1
View File
@@ -202,6 +202,7 @@ class ChatPermissions(BaseModel):
system_prompt: bool = True system_prompt: bool = True
params: bool = True params: bool = True
file_upload: bool = True file_upload: bool = True
web_upload: bool = True
delete: bool = True delete: bool = True
delete_message: bool = True delete_message: bool = True
continue_response: bool = True continue_response: bool = True
@@ -414,6 +414,22 @@
{/if} {/if}
</div> </div>
<div class="flex flex-col w-full">
<div class="flex w-full justify-between my-1">
<div class=" self-center text-xs font-medium">
{$i18n.t('Allow Web Upload')}
</div>
<Switch bind:state={permissions.chat.web_upload} />
</div>
{#if defaultPermissions?.chat?.web_upload && !permissions.chat.web_upload}
<div>
<div class="text-xs text-gray-500">
{$i18n.t('This is a default user permission and will remain enabled.')}
</div>
</div>
{/if}
</div>
<div class="flex flex-col w-full"> <div class="flex flex-col w-full">
<div class="flex w-full justify-between my-1"> <div class="flex w-full justify-between my-1">
<div class=" self-center text-xs font-medium"> <div class=" self-center text-xs font-medium">
@@ -56,6 +56,10 @@
fileUploadCapableModels.length === selectedModels.length && fileUploadCapableModels.length === selectedModels.length &&
($user?.role === 'admin' || $user?.permissions?.chat?.file_upload); ($user?.role === 'admin' || $user?.permissions?.chat?.file_upload);
let webUploadEnabled = true;
$: webUploadEnabled =
$user?.role === 'admin' || ($user?.permissions?.chat?.web_upload ?? true);
$: if (!fileUploadEnabled && files.length > 0) { $: if (!fileUploadEnabled && files.length > 0) {
files = []; files = [];
} }
@@ -185,19 +189,17 @@
</Tooltip> </Tooltip>
<Tooltip <Tooltip
content={fileUploadCapableModels.length !== selectedModels.length content={!webUploadEnabled
? $i18n.t('Model(s) do not support file upload') ? $i18n.t('You do not have permission to upload web content.')
: !fileUploadEnabled : ''}
? $i18n.t('You do not have permission to upload files.')
: ''}
className="w-full" className="w-full"
> >
<DropdownMenu.Item <DropdownMenu.Item
class="flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-xl {!fileUploadEnabled class="flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-xl {!webUploadEnabled
? 'opacity-50' ? 'opacity-50'
: ''}" : ''}"
on:click={() => { on:click={() => {
if (fileUploadEnabled) { if (webUploadEnabled) {
showAttachWebpageModal = true; showAttachWebpageModal = true;
} }
}} }}
+1
View File
@@ -32,6 +32,7 @@ export const DEFAULT_PERMISSIONS = {
system_prompt: true, system_prompt: true,
params: true, params: true,
file_upload: true, file_upload: true,
web_upload: true,
delete: true, delete: true,
delete_message: true, delete_message: true,
continue_response: true, continue_response: true,