Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
open-webui
Commits
190b934a
Commit
190b934a
authored
Apr 17, 2024
by
Jun Siang Cheah
Browse files
feat: add ALLOW_ADMIN_EXPORT to disable exporting of chats and the db
parent
1e76dbc9
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
44 additions
and
25 deletions
+44
-25
backend/apps/web/routers/chats.py
backend/apps/web/routers/chats.py
+9
-1
backend/apps/web/routers/utils.py
backend/apps/web/routers/utils.py
+5
-1
backend/config.py
backend/config.py
+2
-0
backend/main.py
backend/main.py
+2
-0
src/lib/components/admin/Settings/Database.svelte
src/lib/components/admin/Settings/Database.svelte
+25
-22
src/lib/components/chat/Settings/Chats.svelte
src/lib/components/chat/Settings/Chats.svelte
+1
-1
No files found.
backend/apps/web/routers/chats.py
View file @
190b934a
...
...
@@ -28,7 +28,10 @@ from apps.web.models.tags import (
from
constants
import
ERROR_MESSAGES
from
config
import
SRC_LOG_LEVELS
from
config
import
(
SRC_LOG_LEVELS
,
ALLOW_ADMIN_EXPORT
)
log
=
logging
.
getLogger
(
__name__
)
log
.
setLevel
(
SRC_LOG_LEVELS
[
"MODELS"
])
...
...
@@ -79,6 +82,11 @@ async def get_all_user_chats(user=Depends(get_current_user)):
@
router
.
get
(
"/all/db"
,
response_model
=
List
[
ChatResponse
])
async
def
get_all_user_chats_in_db
(
user
=
Depends
(
get_admin_user
)):
if
not
ALLOW_ADMIN_EXPORT
:
raise
HTTPException
(
status_code
=
status
.
HTTP_401_UNAUTHORIZED
,
detail
=
ERROR_MESSAGES
.
ACCESS_PROHIBITED
,
)
return
[
ChatResponse
(
**
{
**
chat
.
model_dump
(),
"chat"
:
json
.
loads
(
chat
.
chat
)})
for
chat
in
Chats
.
get_all_chats
()
...
...
backend/apps/web/routers/utils.py
View file @
190b934a
...
...
@@ -91,7 +91,11 @@ async def download_chat_as_pdf(
@
router
.
get
(
"/db/download"
)
async
def
download_db
(
user
=
Depends
(
get_admin_user
)):
if
not
ALLOW_ADMIN_EXPORT
:
raise
HTTPException
(
status_code
=
status
.
HTTP_401_UNAUTHORIZED
,
detail
=
ERROR_MESSAGES
.
ACCESS_PROHIBITED
,
)
return
FileResponse
(
f
"
{
DATA_DIR
}
/webui.db"
,
media_type
=
"application/octet-stream"
,
...
...
backend/config.py
View file @
190b934a
...
...
@@ -382,6 +382,8 @@ MODEL_FILTER_LIST = [model.strip() for model in MODEL_FILTER_LIST.split(";")]
WEBHOOK_URL
=
os
.
environ
.
get
(
"WEBHOOK_URL"
,
""
)
ALLOW_ADMIN_EXPORT
=
os
.
environ
.
get
(
"ALLOW_ADMIN_EXPORT"
,
"True"
).
lower
()
==
"true"
####################################
# WEBUI_VERSION
####################################
...
...
backend/main.py
View file @
190b934a
...
...
@@ -52,6 +52,7 @@ from config import (
GLOBAL_LOG_LEVEL
,
SRC_LOG_LEVELS
,
WEBHOOK_URL
,
ALLOW_ADMIN_EXPORT
,
)
from
constants
import
ERROR_MESSAGES
...
...
@@ -207,6 +208,7 @@ async def get_app_config():
"default_models"
:
webui_app
.
state
.
DEFAULT_MODELS
,
"default_prompt_suggestions"
:
webui_app
.
state
.
DEFAULT_PROMPT_SUGGESTIONS
,
"trusted_header_auth"
:
bool
(
webui_app
.
state
.
AUTH_TRUSTED_EMAIL_HEADER
),
"allow_admin_export"
:
ALLOW_ADMIN_EXPORT
,
}
...
...
src/lib/components/admin/Settings/Database.svelte
View file @
190b934a
<script lang="ts">
import { downloadDatabase } from '$lib/apis/utils';
import { onMount, getContext } from 'svelte';
import { config } from '$lib/stores';
const i18n = getContext('i18n');
...
...
@@ -24,6 +25,7 @@
<div class=" flex w-full justify-between">
<!-- <div class=" self-center text-xs font-medium">{$i18n.t('Allow Chat Deletion')}</div> -->
{#if $config?.allow_admin_export ?? true}
<button
class=" flex rounded-md py-1.5 px-3 w-full hover:bg-gray-200 dark:hover:bg-gray-800 transition"
type="button"
...
...
@@ -50,6 +52,7 @@
</div>
<div class=" self-center text-sm font-medium">{$i18n.t('Download Database')}</div>
</button>
{/if}
</div>
</div>
</div>
...
...
src/lib/components/chat/Settings/Chats.svelte
View file @
190b934a
...
...
@@ -301,7 +301,7 @@
</button>
{/if}
{#if $user?.role === 'admin'}
{#if $user?.role === 'admin'
&& ($config?.allow_admin_export ?? true)
}
<hr class=" dark:border-gray-700" />
<button
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment