From 2a2ec8504a16b5f22b031dc4712327784d2a7b25 Mon Sep 17 00:00:00 2001 From: Yukino_fox Date: Sat, 25 Apr 2026 14:58:38 +0800 Subject: [PATCH] =?UTF-8?q?refactor(auth):=20=E7=A7=BB=E9=99=A4OAuth?= =?UTF-8?q?=E4=B8=AD=E7=9A=84permission=E5=AD=97=E6=AE=B5=E5=8F=8A?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OAuth登录仅用于云服务,不再影响本地权限系统。移除相关字段和权限映射逻辑,简化代码结构。 --- src-tauri/src/commands/auth.rs | 1 - src/App.tsx | 27 +++++---------------------- src/components/OAuth/OAuthLogin.tsx | 2 -- src/components/Settings.tsx | 21 ++------------------- src/hooks/useOAuthPersist.ts | 3 --- src/preload/types.ts | 2 -- 6 files changed, 7 insertions(+), 49 deletions(-) diff --git a/src-tauri/src/commands/auth.rs b/src-tauri/src/commands/auth.rs index 4ec851c..6a90b10 100644 --- a/src-tauri/src/commands/auth.rs +++ b/src-tauri/src/commands/auth.rs @@ -790,7 +790,6 @@ pub struct OAuthState { pub email: String, pub name: String, pub github_username: Option, - pub permission: u32, pub login_time: String, } diff --git a/src/App.tsx b/src/App.tsx index 2fe4dd2..f15c0ef 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -48,14 +48,6 @@ const applyGlobalFontFamily = (fontValue?: string) => { document.body.style.fontFamily = fontFamily } -const mapOAuthPermissionToAppPermission = ( - oauthPermission: number -): "admin" | "points" | "view" => { - if (oauthPermission >= 18) return "admin" - if (oauthPermission >= 1) return "points" - return "view" -} - function MainContent(): React.JSX.Element { const { t } = useTranslation() const navigate = useNavigate() @@ -218,26 +210,19 @@ function MainContent(): React.JSX.Element { api.getAllSettings(), ]) - const oauthPermission = - oauthRes?.success && oauthRes.data - ? mapOAuthPermissionToAppPermission(oauthRes.data.permission) - : null + // OAuth 登录仅用于云服务,不影响本地权限 if (oauthRes?.success && oauthRes.data?.name) { setOAuthUserName(String(oauthRes.data.name)) } else { setOAuthUserName(null) } + // 本地权限系统独立于 OAuth if (authRes?.success && authRes.data) { const anyPwd = Boolean(authRes.data.hasAdminPassword || authRes.data.hasPointsPassword) setHasAnyPassword(anyPwd) - - const finalPermission = oauthPermission ?? authRes.data.permission - setPermission(finalPermission) - setAuthVisible(anyPwd && finalPermission === "view") - } else if (oauthPermission) { - setPermission(oauthPermission) - setAuthVisible(false) + setPermission(authRes.data.permission) + setAuthVisible(anyPwd && authRes.data.permission === "view") } if (settingsRes?.success && settingsRes.data) { @@ -527,10 +512,8 @@ function MainContent(): React.JSX.Element { email: string name: string github_username?: string - permission: number }) => { - setPermission(mapOAuthPermissionToAppPermission(userInfo.permission)) - setAuthVisible(false) + // OAuth 登录仅用于云服务,不修改本地权限 setOAuthUserName(userInfo.name || null) messageApi.success(t("auth.oauthSuccess", "登录成功")) } diff --git a/src/components/OAuth/OAuthLogin.tsx b/src/components/OAuth/OAuthLogin.tsx index d95036e..0a558c7 100644 --- a/src/components/OAuth/OAuthLogin.tsx +++ b/src/components/OAuth/OAuthLogin.tsx @@ -12,7 +12,6 @@ interface OAuthLoginProps { email: string name: string github_username?: string - permission: number }) => void } @@ -170,7 +169,6 @@ export function OAuthLogin({ visible, onClose, onSuccess }: OAuthLoginProps) { email: userRes.data.email, name: userRes.data.name, github_username: userRes.data.github_username, - permission: userRes.data.permission, login_time: new Date().toISOString(), } diff --git a/src/components/Settings.tsx b/src/components/Settings.tsx index 0e11dba..1a17acc 100644 --- a/src/components/Settings.tsx +++ b/src/components/Settings.tsx @@ -203,15 +203,8 @@ export const Settings: React.FC<{ email: string name: string github_username?: string - permission: number } | null>(null) - const getOAuthPermissionLabel = (oauthPermission: number) => { - if (oauthPermission >= 18) return t("permissions.admin") - if (oauthPermission >= 1) return t("permissions.points") - return t("permissions.view") - } - const permissionTag = useMemo(() => { return ( const user = customEvent?.detail?.user - if (user?.user_id && user.email && user.name && typeof user.permission === "number") { + if (user?.user_id && user.email && user.name) { setOAuthUserInfo({ user_id: user.user_id, email: user.email, name: user.name, github_username: user.github_username, - permission: user.permission, }) } else { setOAuthUserInfo(null) @@ -1163,13 +1153,6 @@ export const Settings: React.FC<{ -
- {t("settings.account.permission")}: - - {getOAuthPermissionLabel(oauthUserInfo.permission)} - -
-