/* Copyright (C) 2025 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import React from 'react'; import { Button, Card, Input, Space, Typography, Avatar, Tabs, TabPane, Popover, } from '@douyinfe/semi-ui'; import { IconMail, IconShield, IconGithubLogo, IconKey, IconLock, IconDelete, } from '@douyinfe/semi-icons'; import { SiTelegram, SiWechat, SiLinux } from 'react-icons/si'; import { UserPlus, ShieldCheck } from 'lucide-react'; import TelegramLoginButton from 'react-telegram-login'; import { onGitHubOAuthClicked, onOIDCClicked, onLinuxDOOAuthClicked, } from '../../../../helpers'; import TwoFASetting from '../components/TwoFASetting'; const AccountManagement = ({ t, userState, status, systemToken, setShowEmailBindModal, setShowWeChatBindModal, generateAccessToken, handleSystemTokenClick, setShowChangePasswordModal, setShowAccountDeleteModal, }) => { const renderAccountInfo = (accountId, label) => { if (!accountId || accountId === '') { return {t('未绑定')}; } const popContent = (
{accountId} {label ? (
{label}
) : null}
); return ( {accountId} ); }; return ( {/* 卡片头部 */}
{t('账户管理')}
{t('账户绑定、安全设置和身份验证')}
{/* 账户绑定 Tab */} {t('账户绑定')} } itemKey='binding' >
{/* 邮箱绑定 */}
{t('邮箱')}
{renderAccountInfo( userState.user?.email, t('邮箱地址'), )}
{/* 微信绑定 */}
{t('微信')}
{userState.user && userState.user.wechat_id !== '' ? t('已绑定') : t('未绑定')}
{/* GitHub绑定 */}
{t('GitHub')}
{renderAccountInfo( userState.user?.github_id, t('GitHub ID'), )}
{/* OIDC绑定 */}
{t('OIDC')}
{renderAccountInfo( userState.user?.oidc_id, t('OIDC ID'), )}
{/* Telegram绑定 */}
{t('Telegram')}
{renderAccountInfo( userState.user?.telegram_id, t('Telegram ID'), )}
{status.telegram_oauth ? ( userState.user.telegram_id !== '' ? ( ) : (
) ) : ( )}
{/* LinuxDO绑定 */}
{t('LinuxDO')}
{renderAccountInfo( userState.user?.linux_do_id, t('LinuxDO ID'), )}
{/* 安全设置 Tab */} {t('安全设置')} } itemKey='security' >
{/* 系统访问令牌 */}
{t('系统访问令牌')} {t('用于API调用的身份验证令牌,请妥善保管')} {systemToken && (
} />
)}
{/* 密码管理 */}
{t('密码管理')} {t('定期更改密码可以提高账户安全性')}
{/* 两步验证设置 */} {/* 危险区域 */}
{t('删除账户')} {t('此操作不可逆,所有数据将被永久删除')}
); }; export default AccountManagement;