From 0a8cecfbfab4c07512c692b263fa1b923c9f504f Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 14 May 2025 23:53:28 +0400 Subject: [PATCH] feat: response watermark --- backend/open_webui/config.py | 7 +++++++ backend/open_webui/main.py | 5 +++++ backend/open_webui/routers/auths.py | 9 ++++++--- .../components/admin/Settings/General.svelte | 18 ++++++++++++++---- .../chat/Messages/ResponseMessage.svelte | 4 ++++ src/lib/components/common/Textarea.svelte | 2 +- .../layout/Overlay/AccountPending.svelte | 4 ++-- 7 files changed, 39 insertions(+), 10 deletions(-) diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index c0177e251..548c9c314 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -1002,6 +1002,13 @@ PENDING_USER_OVERLAY_CONTENT = PersistentConfig( ) +RESPONSE_WATERMARK = PersistentConfig( + "RESPONSE_WATERMARK", + "ui.watermark", + os.environ.get("RESPONSE_WATERMARK", ""), +) + + USER_PERMISSIONS_WORKSPACE_MODELS_ACCESS = ( os.environ.get("USER_PERMISSIONS_WORKSPACE_MODELS_ACCESS", "False").lower() == "true" diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index d5d481ad1..646db6846 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -334,6 +334,7 @@ from open_webui.config import ( DEFAULT_LOCALE, OAUTH_PROVIDERS, WEBUI_URL, + RESPONSE_WATERMARK, # Admin ENABLE_ADMIN_CHAT_ACCESS, ENABLE_ADMIN_EXPORT, @@ -580,9 +581,12 @@ app.state.config.ADMIN_EMAIL = ADMIN_EMAIL app.state.config.DEFAULT_MODELS = DEFAULT_MODELS app.state.config.DEFAULT_PROMPT_SUGGESTIONS = DEFAULT_PROMPT_SUGGESTIONS app.state.config.DEFAULT_USER_ROLE = DEFAULT_USER_ROLE + app.state.config.PENDING_USER_OVERLAY_CONTENT = PENDING_USER_OVERLAY_CONTENT app.state.config.PENDING_USER_OVERLAY_TITLE = PENDING_USER_OVERLAY_TITLE +app.state.config.RESPONSE_WATERMARK = RESPONSE_WATERMARK + app.state.config.USER_PERMISSIONS = USER_PERMISSIONS app.state.config.WEBHOOK_URL = WEBHOOK_URL app.state.config.BANNERS = WEBUI_BANNERS @@ -1413,6 +1417,7 @@ async def get_app_config(request: Request): "ui": { "pending_user_overlay_title": app.state.config.PENDING_USER_OVERLAY_TITLE, "pending_user_overlay_content": app.state.config.PENDING_USER_OVERLAY_CONTENT, + "response_watermark": app.state.config.RESPONSE_WATERMARK, }, "license_metadata": app.state.LICENSE_METADATA, **( diff --git a/backend/open_webui/routers/auths.py b/backend/open_webui/routers/auths.py index 34a646427..390c7d428 100644 --- a/backend/open_webui/routers/auths.py +++ b/backend/open_webui/routers/auths.py @@ -187,9 +187,7 @@ async def ldap_auth(request: Request, response: Response, form_data: LdapForm): LDAP_USE_TLS = request.app.state.config.LDAP_USE_TLS LDAP_CA_CERT_FILE = request.app.state.config.LDAP_CA_CERT_FILE LDAP_VALIDATE_CERT = ( - CERT_REQUIRED - if request.app.state.config.LDAP_VALIDATE_CERT - else CERT_NONE + CERT_REQUIRED if request.app.state.config.LDAP_VALIDATE_CERT else CERT_NONE ) LDAP_CIPHERS = ( request.app.state.config.LDAP_CIPHERS @@ -703,6 +701,7 @@ async def get_admin_config(request: Request, user=Depends(get_admin_user)): "ENABLE_USER_WEBHOOKS": request.app.state.config.ENABLE_USER_WEBHOOKS, "PENDING_USER_OVERLAY_TITLE": request.app.state.config.PENDING_USER_OVERLAY_TITLE, "PENDING_USER_OVERLAY_CONTENT": request.app.state.config.PENDING_USER_OVERLAY_CONTENT, + "RESPONSE_WATERMARK": request.app.state.config.RESPONSE_WATERMARK, } @@ -722,6 +721,7 @@ class AdminConfig(BaseModel): ENABLE_USER_WEBHOOKS: bool PENDING_USER_OVERLAY_TITLE: Optional[str] = None PENDING_USER_OVERLAY_CONTENT: Optional[str] = None + RESPONSE_WATERMARK: Optional[str] = None @router.post("/admin/config") @@ -766,6 +766,8 @@ async def update_admin_config( form_data.PENDING_USER_OVERLAY_CONTENT ) + request.app.state.config.RESPONSE_WATERMARK = form_data.RESPONSE_WATERMARK + return { "SHOW_ADMIN_DETAILS": request.app.state.config.SHOW_ADMIN_DETAILS, "WEBUI_URL": request.app.state.config.WEBUI_URL, @@ -782,6 +784,7 @@ async def update_admin_config( "ENABLE_USER_WEBHOOKS": request.app.state.config.ENABLE_USER_WEBHOOKS, "PENDING_USER_OVERLAY_TITLE": request.app.state.config.PENDING_USER_OVERLAY_TITLE, "PENDING_USER_OVERLAY_CONTENT": request.app.state.config.PENDING_USER_OVERLAY_CONTENT, + "RESPONSE_WATERMARK": request.app.state.config.RESPONSE_WATERMARK, } diff --git a/src/lib/components/admin/Settings/General.svelte b/src/lib/components/admin/Settings/General.svelte index 850303b90..86cc876ef 100644 --- a/src/lib/components/admin/Settings/General.svelte +++ b/src/lib/components/admin/Settings/General.svelte @@ -306,8 +306,8 @@ -
-
+
+
{$i18n.t('Pending User Overlay Title')}