#
vincentlu
2025-02-06 468d4e74e24242b1a2ddb2815d26ee202926cebe
#
1 文件已重命名
10个文件已修改
71 ■■■■ 已修改文件
rsf-admin/src/App.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/api/auth/index.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/config/authProvider.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/en.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/zh.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/login/index.jsx 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserLoginService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserLoginServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/App.jsx
@@ -16,7 +16,7 @@
import DataProvider from "./config/dataProvider";
import Dashboard from "./page/dashboard/Dashboard";
import Settings from "./page/settings/Settings";
import Login from "./page/login/Login";
import Login from "./page/login";
import * as Common from './utils/common'
import { themes } from './themes/themes';
import { SPA_NAME, SPA_VERSION, DEFAULT_THEME_NAME, DEFAULT_THEME_MODE, DATA_PROVIDER_SPRING } from "./config/setting";
rsf-admin/src/api/auth/index.js
@@ -1,5 +1,13 @@
import request from '../../utils/request';
export async function tenants(_params) {
    const res = await request.get('/tenant/list', _params);
    if (res.data.code === 200) {
        return res.data.data;
    }
    return Promise.reject(new Error(res.data.msg));
}
export async function login(_params) {
    const res = await request.post('/login', _params);
    if (res.data.code === 200) {
rsf-admin/src/config/authProvider.js
@@ -11,7 +11,7 @@
    const { accessToken, user } = await login({
      username: username,
      password: password,
      hostId: 1,
      tenantId: 1,
    });
    if (user && accessToken) {
rsf-admin/src/i18n/en.js
@@ -219,6 +219,9 @@
        }
    },
    page: {
        login: {
            tenant: 'Tenant',
        },
    }
};
rsf-admin/src/i18n/zh.js
@@ -219,6 +219,9 @@
        }
    },
    page: {
        login: {
            tenant: '租户',
        },
    }
};
rsf-admin/src/page/login/index.jsx
File was renamed from rsf-admin/src/page/login/Login.jsx
@@ -17,8 +17,10 @@
    useTranslate,
    useLogin,
    useNotify,
    SelectInput,
} from 'react-admin';
import { LOGIN_BACKGROUND } from '@/config/setting';
import { tenants } from '@/api/auth';
const Login = () => {
    const [loading, setLoading] = useState(false);
@@ -27,6 +29,22 @@
    const notify = useNotify();
    const login = useLogin();
    const location = useLocation();
    const [tenantList, setTenantList] = React.useState([]);
    const [tenantId, setTenantId] = React.useState(null);
    React.useEffect(() => {
        tenants().then(data => {
            setTenantList(data);
            if (data.length > 0) {
                setTenantId(data[0].id);
            }
        })
    }, []);
    React.useEffect(() => {
        console.log(tenantId);
    }, [tenantId]);
    const handleSubmit = (auth) => {
        setLoading(true);
@@ -123,6 +141,19 @@
                    </Box>
                    <Box sx={{ padding: '0 1em 1em 1em' }}>
                        <Box sx={{ marginTop: '1em' }}>
                            <SelectInput
                                label="page.login.tenant"
                                source="tenantId"
                                choices={tenantList.map(item => ({
                                    id: item.id,
                                    name: item.name
                                }))}
                                validate={required()}
                                value={tenantId}
                                onChange={e => setTenantId(e.target.value)}
                            />
                        </Box>
                        <Box sx={{ marginTop: '.1em' }}>
                            <TextInput
                                autoFocus
                                source="username"
@@ -131,7 +162,7 @@
                                validate={required()}
                            />
                        </Box>
                        <Box sx={{ marginTop: '1em' }}>
                        <Box sx={{ marginTop: '.1em' }}>
                            <TextInput
                                source="password"
                                label={translate('ra.auth.password')}
rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
@@ -42,7 +42,8 @@
                        "sys_host",
                        "sys_user_role",
                        "sys_role_menu",
                        "sys_menu"
                        "sys_menu",
                        "sys_dept"
                ).contains(tableName);
            }
        };
rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
@@ -36,6 +36,7 @@
    public static final String[] FILTER_PATH = new String[]{
            "/demo/**",
            "/test/**",
            "/tenant/list",
            "/login",
            "/druid/**",
            "/swagger-ui.html",
rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java
@@ -67,6 +67,11 @@
        return R.ok("Login Success").add(new LoginResult(accessToken, user));
    }
    @GetMapping("/tenant/list")
    public R tenantList() {
        return R.ok().add(tenantService.list());
    }
    @GetMapping("/auth/user")
    public R userInfo() {
        return R.ok(userService.getByIdRel(getLoginUserId()));
@@ -78,13 +83,6 @@
//        return R.ok().add(Utils.toTreeData(menus, 0L, Menu::getParentId, Menu::getId, Menu::setChildren));
        List<MenuVo> voList = menus.stream().map(this::convertToVo).collect(Collectors.toList());
        return R.ok().add(Utils.toTreeData(voList, 0L, MenuVo::getParentId, MenuVo::getId, MenuVo::setChildren));
    }
    @GetMapping("/auth/tenant")
    public R authHost() {
        return R.ok().add(tenantService.list());
    }
    @PreAuthorize("hasAuthority('sys:auth:user')")
rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserLoginService.java
@@ -8,6 +8,6 @@
public interface UserLoginService extends IService<UserLogin> {
    void saveAsync(Long userId, String token, Integer type, Long hostId, String memo, HttpServletRequest request);
    void saveAsync(Long userId, String token, Integer type, Long tenantId, String memo, HttpServletRequest request);
}
rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserLoginServiceImpl.java
@@ -15,7 +15,7 @@
    @Async
    @Override
    public void saveAsync(Long userId, String token, Integer type, Long hostId, String memo, HttpServletRequest request) {
    public void saveAsync(Long userId, String token, Integer type, Long tenantId, String memo, HttpServletRequest request) {
        if (userId == null) {
            return;
        }