Added permission to enable/disable image capture

This commit is contained in:
Jesper Kristensen
2025-06-16 15:53:05 +02:00
parent e05560a49d
commit e24758f54b
6 changed files with 46 additions and 27 deletions

View File

@@ -66,6 +66,7 @@
chat: {
controls: true,
system_prompt: true,
image_capture: true,
file_upload: true,
delete: true,
edit: true,

View File

@@ -46,6 +46,7 @@
},
chat: {
controls: true,
image_capture: true,
file_upload: true,
delete: true,
edit: true,

View File

@@ -21,6 +21,7 @@
},
chat: {
controls: true,
image_capture: true,
file_upload: true,
delete: true,
edit: true,
@@ -271,6 +272,14 @@
<Switch bind:state={permissions.chat.system_prompt} />
</div>
<div class=" flex w-full justify-between my-2 pr-2">
<div class=" self-center text-xs font-medium">
{$i18n.t('Allow Image capture')}
</div>
<Switch bind:state={permissions.chat.image_capture} />
</div>
<div class=" flex w-full justify-between my-2 pr-2">
<div class=" self-center text-xs font-medium">
{$i18n.t('Allow Chat Delete')}

View File

@@ -173,36 +173,38 @@
<hr class="border-black/5 dark:border-white/5 my-1" />
{/if}
<Tooltip
content={fileUploadCapableModels.length !== selectedModels.length
? $i18n.t('Model(s) do not support file upload')
: !fileUploadEnabled
? $i18n.t('You do not have permission to upload files.')
: ''}
className="w-full"
>
<DropdownMenu.Item
class="flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-xl {!fileUploadEnabled
? 'opacity-50'
: ''}"
on:click={() => {
if (fileUploadEnabled) {
if (!detectMobile()) {
screenCaptureHandler();
} else {
const cameraInputElement = document.getElementById('camera-input');
{#if $user?.role === 'admin' || $user?.permissions.chat?.image_capture}
<Tooltip
content={fileUploadCapableModels.length !== selectedModels.length
? $i18n.t('Model(s) do not support file upload')
: !fileUploadEnabled
? $i18n.t('You do not have permission to upload files.')
: ''}
className="w-full"
>
<DropdownMenu.Item
class="flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-xl {!fileUploadEnabled
? 'opacity-50'
: ''}"
on:click={() => {
if (fileUploadEnabled) {
if (!detectMobile()) {
screenCaptureHandler();
} else {
const cameraInputElement = document.getElementById('camera-input');
if (cameraInputElement) {
cameraInputElement.click();
if (cameraInputElement) {
cameraInputElement.click();
}
}
}
}
}}
>
<CameraSolid />
<div class=" line-clamp-1">{$i18n.t('Capture')}</div>
</DropdownMenu.Item>
</Tooltip>
}}
>
<CameraSolid />
<div class=" line-clamp-1">{$i18n.t('Capture')}</div>
</DropdownMenu.Item>
</Tooltip>
{/if}
<Tooltip
content={fileUploadCapableModels.length !== selectedModels.length