diff --git a/backend/open_webui/utils/auth.py b/backend/open_webui/utils/auth.py index 9befaf2a91..3262c803f3 100644 --- a/backend/open_webui/utils/auth.py +++ b/backend/open_webui/utils/auth.py @@ -74,31 +74,37 @@ def override_static(path: str, content: str): def get_license_data(app, key): - if key: - try: - res = requests.post( - "https://api.openwebui.com/api/v1/license/", - json={"key": key, "version": "1"}, - timeout=5, + def handler(u): + res = requests.post( + f"{u}/api/v1/license/", + json={"key": key, "version": "1"}, + timeout=5, + ) + + if getattr(res, "ok", False): + payload = getattr(res, "json", lambda: {})() + for k, v in payload.items(): + if k == "resources": + for p, c in v.items(): + globals().get("override_static", lambda a, b: None)(p, c) + elif k == "count": + setattr(app.state, "USER_COUNT", v) + elif k == "name": + setattr(app.state, "WEBUI_NAME", v) + elif k == "metadata": + setattr(app.state, "LICENSE_METADATA", v) + return True + else: + log.error( + f"License: retrieval issue: {getattr(res, 'text', 'unknown error')}" ) - if getattr(res, "ok", False): - payload = getattr(res, "json", lambda: {})() - for k, v in payload.items(): - if k == "resources": - for p, c in v.items(): - globals().get("override_static", lambda a, b: None)(p, c) - elif k == "count": - setattr(app.state, "USER_COUNT", v) - elif k == "name": - setattr(app.state, "WEBUI_NAME", v) - elif k == "metadata": - setattr(app.state, "LICENSE_METADATA", v) - return True - else: - log.error( - f"License: retrieval issue: {getattr(res, 'text', 'unknown error')}" - ) + if key: + us = ["https://api.openwebui.com", "https://licenses.api.openwebui.com"] + try: + for u in us: + if handler(u): + return True except Exception as ex: log.exception(f"License: Uncaught Exception: {ex}") return False diff --git a/src/lib/components/common/RichTextInput.svelte b/src/lib/components/common/RichTextInput.svelte index 572d5636e0..8c98f1f380 100644 --- a/src/lib/components/common/RichTextInput.svelte +++ b/src/lib/components/common/RichTextInput.svelte @@ -158,6 +158,41 @@ this.setupEventListeners(); } + generateUserColor() { + const colors = [ + '#FF6B6B', + '#4ECDC4', + '#45B7D1', + '#96CEB4', + '#FFEAA7', + '#DDA0DD', + '#98D8C8', + '#F7DC6F', + '#BB8FCE', + '#85C1E9' + ]; + return colors[Math.floor(Math.random() * colors.length)]; + } + + joinDocument() { + const userColor = this.generateUserColor(); + this.socket.emit('yjs:document:join', { + document_id: this.documentId, + user_id: this.user?.id, + user_name: this.user?.name, + user_color: userColor + }); + + // Set user awareness info + if (awareness && this.user) { + awareness.setLocalStateField('user', { + name: `${this.user.name}`, + color: userColor, + id: this.socket.id + }); + } + } + setupEventListeners() { // Listen for document updates from server this.socket.on('yjs:document:update', (data) => { @@ -254,41 +289,6 @@ } } - generateUserColor() { - const colors = [ - '#FF6B6B', - '#4ECDC4', - '#45B7D1', - '#96CEB4', - '#FFEAA7', - '#DDA0DD', - '#98D8C8', - '#F7DC6F', - '#BB8FCE', - '#85C1E9' - ]; - return colors[Math.floor(Math.random() * colors.length)]; - } - - joinDocument() { - const userColor = this.generateUserColor(); - this.socket.emit('yjs:document:join', { - document_id: this.documentId, - user_id: this.user?.id, - user_name: this.user?.name, - user_color: userColor - }); - - // Set user awareness info - if (awareness && this.user) { - awareness.setLocalStateField('user', { - name: `${this.user.name}`, - color: userColor, - id: this.socket.id - }); - } - } - onConnect() { this.isConnected = true; this.joinDocument();