From 883e0ab1154598e18edd20259fb40815aabf3b48 Mon Sep 17 00:00:00 2001 From: jialin Date: Fri, 12 Dec 2025 10:31:43 +0800 Subject: [PATCH] feat: get initial password --- .../highlight-code/styles/index.less | 2 +- src/locales/en-US/users.ts | 4 +- src/locales/ja-JP/users.ts | 7 ++- src/locales/ru-RU/users.ts | 6 +- src/locales/zh-CN/users.ts | 4 +- .../login/components/local-user-form.tsx | 55 ++++++++++++++++++- src/pages/login/config/index.ts | 1 + src/pages/login/index.tsx | 12 ++-- 8 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 src/pages/login/config/index.ts diff --git a/src/components/highlight-code/styles/index.less b/src/components/highlight-code/styles/index.less index 9c82175d..59d75006 100644 --- a/src/components/highlight-code/styles/index.less +++ b/src/components/highlight-code/styles/index.less @@ -46,7 +46,7 @@ white-space: pre-wrap; code { - line-height: 1.5; + line-height: 1.6; } &.copyable { diff --git a/src/locales/en-US/users.ts b/src/locales/en-US/users.ts index 4e825003..1a209e66 100644 --- a/src/locales/en-US/users.ts +++ b/src/locales/en-US/users.ts @@ -37,5 +37,7 @@ export default { 'users.settings.title': 'User Settings', 'users.status.activate': 'Activate Account', 'users.status.deactivate': 'Deactivate Account', - 'users.status.inactiveAccount': 'Inactive Account' + 'users.status.inactiveAccount': 'Inactive Account', + 'users.login.getInitialPassword': + 'Run the following command on your server to retrieve the initial admin password.' }; diff --git a/src/locales/ja-JP/users.ts b/src/locales/ja-JP/users.ts index 7c128c44..f435e06b 100644 --- a/src/locales/ja-JP/users.ts +++ b/src/locales/ja-JP/users.ts @@ -38,12 +38,15 @@ export default { 'users.settings.title': 'User Settings', 'users.status.activate': 'Activate Account', 'users.status.deactivate': 'Deactivate Account', - 'users.status.inactiveAccount': 'Inactive Account' + 'users.status.inactiveAccount': 'Inactive Account', + 'users.login.getInitialPassword': + 'Run the following command on your server to retrieve the initial admin password.' }; // ========== To-Do: Translate Keys (Remove After Translation) ========== // 1. 'users.settings.title': 'User Settings', // 2. 'users.status.activate': 'Activate Account', // 3. 'users.status.deactivate': 'Deactivate Account', -// 4. 'users.status.inactiveAccount': 'Inactive Account' +// 4. 'users.status.inactiveAccount': 'Inactive Account', +// 5. 'users.login.getInitialPassword': 'Run the following command on your server to retrieve the initial admin password.' // ========== End of To-Do List ========== diff --git a/src/locales/ru-RU/users.ts b/src/locales/ru-RU/users.ts index 4134a933..7f037d53 100644 --- a/src/locales/ru-RU/users.ts +++ b/src/locales/ru-RU/users.ts @@ -38,9 +38,11 @@ export default { 'users.settings.title': 'Настройки пользователя', 'users.status.activate': 'Активировать аккаунт', 'users.status.deactivate': 'Деактивировать аккаунт', - 'users.status.inactiveAccount': 'Неактивный аккаунт' + 'users.status.inactiveAccount': 'Неактивный аккаунт', + 'users.login.getInitialPassword': + 'Run the following command on your server to retrieve the initial admin password.' }; // ========== To-Do: Translate Keys (Remove After Translation) ========== - +// 1. 'users.login.getInitialPassword': 'Run the following command on your server to retrieve the initial admin password.' // ========== End of To-Do List ========== diff --git a/src/locales/zh-CN/users.ts b/src/locales/zh-CN/users.ts index e5aa58f7..d3f58399 100644 --- a/src/locales/zh-CN/users.ts +++ b/src/locales/zh-CN/users.ts @@ -36,5 +36,7 @@ export default { 'users.settings.title': '用户设置', 'users.status.activate': '启用账户', 'users.status.deactivate': '停用账户', - 'users.status.inactiveAccount': '停用账户' + 'users.status.inactiveAccount': '停用账户', + 'users.login.getInitialPassword': + '在服务器端运行以下命令以获取初始管理员密码。' }; diff --git a/src/pages/login/components/local-user-form.tsx b/src/pages/login/components/local-user-form.tsx index d2d6e7c5..0a75111b 100644 --- a/src/pages/login/components/local-user-form.tsx +++ b/src/pages/login/components/local-user-form.tsx @@ -1,8 +1,38 @@ +import HighlightCode from '@/components/highlight-code'; import SealInput from '@/components/seal-form/seal-input'; import externalLinks from '@/constants/external-links'; -import { LockOutlined, UserOutlined } from '@ant-design/icons'; +import { + InfoCircleOutlined, + LockOutlined, + UserOutlined +} from '@ant-design/icons'; import { useIntl } from '@umijs/max'; -import { Button, Checkbox, Form, FormInstance } from 'antd'; +import { Button, Checkbox, Divider, Form, FormInstance } from 'antd'; +import { createStyles } from 'antd-style'; +import { GET_INITIAL_PASSWORD } from '../../login/config'; + +const useStyles = createStyles(({ token, css }) => { + return { + commandInfo: css` + .content { + display: flex; + align-items: flex-start; + gap: 8px; + margin-bottom: 12px; + .icon { + padding-top: 2px; + color: ${token.colorInfo}; + font-size: 16px; + } + .info { + line-height: 1.5; + color: ${token.colorTextSecondary}; + font-size: 14px; + } + } + ` + }; +}); interface LocalUserFormProps { handleLogin: (values: any) => void; @@ -12,6 +42,27 @@ interface LocalUserFormProps { const LocalUserForm: React.FC = (props) => { const { handleLogin, form } = props; const intl = useIntl(); + const { styles } = useStyles(); + + const renderCommandInfo = () => { + return ( +
+ +
+ + + {intl.formatMessage({ id: 'users.login.getInitialPassword' })} + +
+ +
+ ); + }; return (
{ const [userInfo, setUserInfo] = useAtom(userAtom); const { initialState, setInitialState } = useModel('@@initialState') || {}; + console.log('useSettings==========', userSettings); + const gotoDefaultPage = async (userInfo: any) => { if (!userInfo || userInfo?.require_password_change) { return;