拆分顺序:接口协议 → 底层实现 → 前端入口 → 验证
sys_user_tenant 支持用户多租户关系。LoginRequest.tenantId 已存在。forge-server/forge-framework/forge-starter-parent/forge-starter-auth/src/main/java/com/mdframe/forge/starter/auth/domain/LoginTenantOption.java — 新增租户选项响应对象。forge-server/forge-framework/forge-starter-parent/forge-starter-auth/src/main/java/com/mdframe/forge/starter/auth/domain/LoginConfigResult.java — 增加租户展示字段。forge-server/forge-framework/forge-starter-parent/forge-starter-auth/src/main/java/com/mdframe/forge/starter/auth/service/IAuthService.java — 增加租户配置接口签名。forge-server/forge-framework/forge-starter-parent/forge-starter-auth/src/main/java/com/mdframe/forge/starter/auth/controller/AuthController.java — 暴露 /auth/tenant/options 和 tenantId 参数。forge-server/forge-framework/forge-plugin-parent/forge-plugin-system/src/main/java/com/mdframe/forge/plugin/system/service/impl/SystemAuthServiceImpl.java — 查询启用租户并合并登录配置。forge-server/forge-framework/forge-plugin-parent/forge-plugin-system/src/main/java/com/mdframe/forge/plugin/system/controller/LoginTenantAssetController.java — 只允许读取启用租户配置中引用的 logo/favicon 文件。java
LoginConfigResult getLoginConfig(String userClient, Long tenantId);
List<LoginTenantOption> listLoginTenantOptions();
BatchUserRoleBindDTO.java — 新增用户批量角色绑定 DTO。BatchUserTenantBindDTO.java — 新增用户批量租户绑定 DTO。ISysUserService.java — 增加批量方法。SysUserServiceImpl.java — 复用 bindUserRoles、upsertUserTenant 实现批量逻辑。SysUserController.java — 新增 /batch/roles、/batch/tenants。java
boolean batchBindUserRoles(BatchUserRoleBindDTO dto);
boolean batchBindUserTenant(BatchUserTenantBindDTO dto);
tenantId。forge-admin-ui/src/views/login/api.jsforge-admin-ui/src/views/login/index.vueonMounted 先加载租户选项,再加载当前租户配置。watch(selectedTenantId) 刷新登录配置、验证码和三方平台。tenantId。tenantIds 多选、tenantId 默认租户单选、列表多租户名称展示和用户类型中文回显。forge-admin-ui/src/views/system/user.vuecrudRef.getSelectedKeys()。beforeRenderUserForm / beforeRenderUserDetail 规范化 tenantIds、tenantId、userType。tenantIds 变更时自动校正默认租户,默认租户选项只来自已选租户。tenantName 按多个租户标签渲染。code-copilot/changes/user-tenant-login-authorization-optimization/test-spec.mdcode-copilot/changes/user-tenant-login-authorization-optimization/execution-log.mdbash
mvn -q -pl forge-framework/forge-plugin-parent/forge-plugin-system -am compile -DskipTests
pnpm --dir forge-admin-ui build