From c5ca278253456c7d65bcd877b0ca40da0b8026eb Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Wed, 8 Nov 2023 00:30:02 +0800 Subject: [PATCH] feat: close #2908 allow to disable parse settings from link --- README.md | 6 ++++++ README_CN.md | 4 ++++ app/api/config/route.ts | 1 + app/components/chat.tsx | 9 ++++++--- app/components/settings.tsx | 12 +++++++++--- app/config/server.ts | 2 ++ app/store/access.ts | 10 +--------- 7 files changed, 29 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index b24470c6..91e03d80 100644 --- a/README.md +++ b/README.md @@ -191,6 +191,12 @@ If you do not want users to use GPT-4, set this value to 1. If you do want users to query balance, set this value to 1, or you should set it to 0. +### `DISABLE_FAST_LINK` (optional) + +> Default: Empty + +If you want to disable parse settings from url, set this to 1. + ## Requirements NodeJS >= 18, Docker >= 20 diff --git a/README_CN.md b/README_CN.md index e16c47a8..13b97417 100644 --- a/README_CN.md +++ b/README_CN.md @@ -102,6 +102,10 @@ OpenAI 接口代理 URL,如果你手动配置了 openai 接口代理,请填 如果你想启用余额查询功能,将此环境变量设置为 1 即可。 +### `DISABLE_FAST_LINK` (可选) + +如果你想禁用从链接解析预制设置,将此环境变量设置为 1 即可。 + ## 开发 点击下方按钮,开始二次开发: diff --git a/app/api/config/route.ts b/app/api/config/route.ts index 0bfc955b..44af8d3b 100644 --- a/app/api/config/route.ts +++ b/app/api/config/route.ts @@ -11,6 +11,7 @@ const DANGER_CONFIG = { hideUserApiKey: serverConfig.hideUserApiKey, disableGPT4: serverConfig.disableGPT4, hideBalanceQuery: serverConfig.hideBalanceQuery, + disableFastLink: serverConfig.disableFastLink, }; declare global { diff --git a/app/components/chat.tsx b/app/components/chat.tsx index a30e505d..18353e8f 100644 --- a/app/components/chat.tsx +++ b/app/components/chat.tsx @@ -975,14 +975,17 @@ function _Chat() { doSubmit(text); }, code: (text) => { + if (accessStore.disableFastLink) return; console.log("[Command] got code from url: ", text); showConfirm(Locale.URLCommand.Code + `code = ${text}`).then((res) => { if (res) { - accessStore.updateCode(text); + accessStore.update((access) => (access.accessCode = text)); } }); }, settings: (text) => { + if (accessStore.disableFastLink) return; + try { const payload = JSON.parse(text) as { key?: string; @@ -998,10 +1001,10 @@ function _Chat() { ).then((res) => { if (!res) return; if (payload.key) { - accessStore.updateToken(payload.key); + accessStore.update((access) => (access.token = payload.key!)); } if (payload.url) { - accessStore.updateOpenAiUrl(payload.url); + accessStore.update((access) => (access.openaiUrl = payload.url!)); } }); } diff --git a/app/components/settings.tsx b/app/components/settings.tsx index cfe81ee4..572c0743 100644 --- a/app/components/settings.tsx +++ b/app/components/settings.tsx @@ -888,7 +888,9 @@ export function Settings() { type="text" placeholder={Locale.Settings.AccessCode.Placeholder} onChange={(e) => { - accessStore.updateCode(e.currentTarget.value); + accessStore.update( + (access) => (access.accessCode = e.currentTarget.value), + ); }} /> @@ -907,7 +909,9 @@ export function Settings() { value={accessStore.openaiUrl} placeholder="https://api.openai.com/" onChange={(e) => - accessStore.updateOpenAiUrl(e.currentTarget.value) + accessStore.update( + (access) => (access.openaiUrl = e.currentTarget.value), + ) } > @@ -920,7 +924,9 @@ export function Settings() { type="text" placeholder={Locale.Settings.Token.Placeholder} onChange={(e) => { - accessStore.updateToken(e.currentTarget.value); + accessStore.update( + (access) => (access.token = e.currentTarget.value), + ); }} /> diff --git a/app/config/server.ts b/app/config/server.ts index 62b435e9..2df806fe 100644 --- a/app/config/server.ts +++ b/app/config/server.ts @@ -13,6 +13,7 @@ declare global { BUILD_MODE?: "standalone" | "export"; BUILD_APP?: string; // is building desktop app ENABLE_BALANCE_QUERY?: string; // allow user to query balance or not + DISABLE_FAST_LINK?: string; // disallow parse settings from url or not } } } @@ -48,5 +49,6 @@ export const getServerSideConfig = () => { hideUserApiKey: !!process.env.HIDE_USER_API_KEY, disableGPT4: !!process.env.DISABLE_GPT4, hideBalanceQuery: !process.env.ENABLE_BALANCE_QUERY, + disableFastLink: !!process.env.DISABLE_FAST_LINK, }; }; diff --git a/app/store/access.ts b/app/store/access.ts index 9eaa81e5..3d889f6e 100644 --- a/app/store/access.ts +++ b/app/store/access.ts @@ -16,6 +16,7 @@ const DEFAULT_ACCESS_STATE = { hideUserApiKey: false, hideBalanceQuery: false, disableGPT4: false, + disableFastLink: false, openaiUrl: DEFAULT_OPENAI_URL, }; @@ -29,15 +30,6 @@ export const useAccessStore = createPersistStore( return get().needCode; }, - updateCode(code: string) { - set(() => ({ accessCode: code?.trim() })); - }, - updateToken(token: string) { - set(() => ({ token: token?.trim() })); - }, - updateOpenAiUrl(url: string) { - set(() => ({ openaiUrl: url?.trim() })); - }, isAuthorized() { this.fetch();