mirror of
https://github.com/SECTL/SecScore.git
synced 2026-07-19 12:34:22 +08:00
refactor(auth): 移除OAuth中的permission字段及相关逻辑
OAuth登录仅用于云服务,不再影响本地权限系统。移除相关字段和权限映射逻辑,简化代码结构。
This commit is contained in:
@@ -790,7 +790,6 @@ pub struct OAuthState {
|
||||
pub email: String,
|
||||
pub name: String,
|
||||
pub github_username: Option<String>,
|
||||
pub permission: u32,
|
||||
pub login_time: String,
|
||||
}
|
||||
|
||||
|
||||
+5
-22
@@ -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", "登录成功"))
|
||||
}
|
||||
|
||||
@@ -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(),
|
||||
}
|
||||
|
||||
|
||||
@@ -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 (
|
||||
<Tag
|
||||
@@ -326,7 +319,6 @@ export const Settings: React.FC<{
|
||||
email: oauthStateRes.data.email,
|
||||
name: oauthStateRes.data.name,
|
||||
github_username: oauthStateRes.data.github_username,
|
||||
permission: oauthStateRes.data.permission,
|
||||
})
|
||||
} else {
|
||||
setOAuthUserInfo(null)
|
||||
@@ -347,7 +339,7 @@ export const Settings: React.FC<{
|
||||
await api.oauthClearLoginState()
|
||||
setOAuthUserInfo(null)
|
||||
window.dispatchEvent(new CustomEvent("ss:oauth-user-updated", { detail: { user: null } }))
|
||||
messageApi.success(t("auth.logout"))
|
||||
messageApi.success(t("settings.account.logoutSuccess", "已退出云账号"))
|
||||
} catch (error: any) {
|
||||
messageApi.error(error?.message || t("common.error"))
|
||||
}
|
||||
@@ -421,17 +413,15 @@ export const Settings: React.FC<{
|
||||
email?: string
|
||||
name?: string
|
||||
github_username?: string
|
||||
permission?: number
|
||||
} | null
|
||||
}>
|
||||
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<{
|
||||
</Text>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Text type="secondary">{t("settings.account.permission")}:</Text>
|
||||
<Tag color="blue" style={{ marginLeft: "8px" }}>
|
||||
{getOAuthPermissionLabel(oauthUserInfo.permission)}
|
||||
</Tag>
|
||||
</div>
|
||||
|
||||
<Divider />
|
||||
|
||||
<Button danger onClick={handleOAuthLogout}>
|
||||
|
||||
@@ -10,7 +10,6 @@ export interface OAuthUserInfo {
|
||||
email: string
|
||||
name: string
|
||||
github_username?: string
|
||||
permission: number
|
||||
}
|
||||
|
||||
export interface OAuthLoginState {
|
||||
@@ -22,7 +21,6 @@ export interface OAuthLoginState {
|
||||
email: string
|
||||
name: string
|
||||
github_username?: string
|
||||
permission: number
|
||||
login_time: string
|
||||
}
|
||||
|
||||
@@ -54,7 +52,6 @@ export function useOAuthPersist() {
|
||||
email: result.data.email,
|
||||
name: result.data.name,
|
||||
github_username: result.data.github_username,
|
||||
permission: result.data.permission,
|
||||
})
|
||||
setIsAuthenticated(true)
|
||||
} else {
|
||||
|
||||
@@ -574,7 +574,6 @@ const api = {
|
||||
email: string
|
||||
name: string
|
||||
github_username?: string
|
||||
permission: number
|
||||
login_time: string
|
||||
}): Promise<{
|
||||
success: boolean
|
||||
@@ -591,7 +590,6 @@ const api = {
|
||||
email: string
|
||||
name: string
|
||||
github_username?: string
|
||||
permission: number
|
||||
login_time: string
|
||||
} | null
|
||||
message?: string
|
||||
|
||||
Reference in New Issue
Block a user