feat(admin): Add user management and upgrade to module permission system
Features - User Management (Phase 4.1): - Database: Add user_modules table for fine-grained module permissions - Database: Add 4 user permissions (view/create/edit/delete) to role_permissions - Backend: UserService (780 lines) - CRUD with tenant isolation - Backend: UserController + UserRoutes (648 lines) - 13 API endpoints - Backend: Batch import users from Excel - Frontend: UserListPage (412 lines) - list/filter/search/pagination - Frontend: UserFormPage (341 lines) - create/edit with module config - Frontend: UserDetailPage (393 lines) - details/tenant/module management - Frontend: 3 modal components (592 lines) - import/assign/configure - API: GET/POST/PUT/DELETE /api/admin/users/* endpoints Architecture Upgrade - Module Permission System: - Backend: Add getUserModules() method in auth.service - Backend: Login API returns modules array in user object - Frontend: AuthContext adds hasModule() method - Frontend: Navigation filters modules based on user.modules - Frontend: RouteGuard checks requiredModule instead of requiredVersion - Frontend: Remove deprecated version-based permission system - UX: Only show accessible modules in navigation (clean UI) - UX: Smart redirect after login (avoid 403 for regular users) Fixes: - Fix UTF-8 encoding corruption in ~100 docs files - Fix pageSize type conversion in userService (String to Number) - Fix authUser undefined error in TopNavigation - Fix login redirect logic with role-based access check - Update Git commit guidelines v1.2 with UTF-8 safety rules Database Changes: - CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled) - ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code) - INSERT 4 permissions + role assignments - UPDATE PUBLIC tenant with 8 module subscriptions Technical: - Backend: 5 new files (~2400 lines) - Frontend: 10 new files (~2500 lines) - Docs: 1 development record + 2 status updates + 1 guideline update - Total: ~4900 lines of code Status: User management 100% complete, module permission system operational
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# 项目管理
|
||||
|
||||
> **<EFBFBD>券<EFBFBD>䈑<EFBFBD>** 憿寧𤌍餈𥕦漲頝蠘葵<E8A098><E891B5>恣<EFBFBD>垍恣<E59E8D><E681A3><EFBFBD><EFBFBD><EFBFBD>蝑𤥁扇敶?
|
||||
> **蝏湔擪<EFBFBD><EFBFBD><EFBFBD>** 憿寧𤌍蝞∠<E89D9E>蝏?
|
||||
> **用途:** 项目进度跟踪、计划管理、决策记录
|
||||
> **维护者:** 项目管理组
|
||||
> **最后更新:** 2025-11-07
|
||||
|
||||
---
|
||||
@@ -10,61 +10,74 @@
|
||||
|
||||
```
|
||||
08-项目管理/
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> 01-<2D>港<EFBFBD>撘<EFBFBD><E69298>𤏸恣<F0A48FB8>? # <20>踵<EFBFBD>閫<EFBFBD><E996AB>嚗<EFBFBD>迤摨?撟游漲嚗?<3F>? <20>婙<EFBFBD><E5A999><EFBFBD> README.md
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> 02-<2D>𣬚<EFBFBD>蝣𤏸<E89DA3><F0A48FB8>? # 銝剜<E98A9D>閫<EFBFBD><E996AB>嚗<EFBFBD>𪂹/<2F><><EFBFBD>
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> README.md
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> 04-<2D>𣬚<EFBFBD>蝣?-<2D>嗆<EFBFBD><E59786>寥<EFBFBD>?md
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> 05-<2D>𣬚<EFBFBD>蝣?-ASL璅∪<E79285>撘<EFBFBD><E69298>?md
|
||||
├── 01-整体开发计划/ # 长期规划(季度/年度)
|
||||
│ └── README.md
|
||||
├── 02-里程碑规划/ # 中期规划(周/月)
|
||||
│ ├── README.md
|
||||
│ ├── 04-里程碑4-架构改造.md
|
||||
│ └── 05-里程碑5-ASL模块开发.md
|
||||
├── 03-每周计划/ # 短期跟踪(日/周)
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> README.md
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> <20>冽活-餈𥕦漲<F0A595A6>亙<EFBFBD>璅⊥踎.md
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> 04-<2D>喟<EFBFBD>霈啣<E99C88>/ # <20>滩<EFBFBD><E6BBA9>喟<EFBFBD>敶埝﹝嚗㇁DR嚗?<3F>? <20>鎿<EFBFBD><E98EBF><EFBFBD> README.md
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ADR璅⊥踎.md
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> ADR-001-Schema<6D>𠉛氖<F0A0899B><E6B096><EFBFBD><EFBFBD>扯<EFBFBD>.md
|
||||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD> 銝衤<E98A9D><E8A1A4>嗆挾銵<E68CBE>𢆡霈∪<E99C88>-ASL<53>臬𢆡.md # 敶枏<E695B6><E69E8F>嗆挾銵<E68CBE>𢆡霈∪<E99C88> 潃?```
|
||||
│ ├── README.md
|
||||
│ └── 周次-进度报告模板.md
|
||||
├── 04-决策记录/ # 重要决策归档(ADR)
|
||||
│ ├── README.md
|
||||
│ ├── ADR模板.md
|
||||
│ └── ADR-001-Schema隔离暂缓执行.md
|
||||
└── 下一阶段行动计划-ASL启动.md # 当前阶段行动计划 ⭐
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 当前阶段
|
||||
|
||||
### 銝衤<EFBFBD><EFBFBD>嗆挾銵<EFBFBD>𢆡霈∪<EFBFBD>嚗?025-11-07 <EFBFBD>?2025-12-06嚗?
|
||||
**<2A>詨<EFBFBD><E8A9A8>格<EFBFBD>嚗?* Schema<6D>𠉛氖 + <20>滨垢蝏煺<E89D8F><E785BA>嗆<EFBFBD> + ASL<53>詨<EFBFBD><E8A9A8>蠘<EFBFBD>
|
||||
### 下一阶段行动计划(2025-11-07 至 2025-12-06)
|
||||
|
||||
**<EFBFBD>𥕦𪂹閫<EFBFBD><EFBFBD>嚗?*
|
||||
- **Week 1嚗?* Schema<6D>𠉛氖嚗?霂衣<E99C82>+7蝛綽<E89D9B>
|
||||
- **Week 2嚗?* **<EFBFBD>滨垢蝏煺<EFBFBD><EFBFBD>嗆<EFBFBD>** + <20>𡒊垢<F0A1928A><E59EA2><EFBFBD> 潃鐥<E6BD83>潃?- **Week 3-4嚗?* ASL<53>詨<EFBFBD><E8A9A8>蠘<EFBFBD>嚗?銝林LM蝑偦<E89D91>㚁<EFBFBD>
|
||||
- **Week 5+嚗?* LLM蝵穃<E89DB5>蝏煺<E89D8F> + <20>嗡<EFBFBD>璅∪<E79285>
|
||||
**核心目标:** Schema隔离 + 前端统一架构 + ASL核心功能
|
||||
|
||||
**敶枏<EFBFBD><EFBFBD><EFBFBD>𧋦嚗?* [銝衤<EFBFBD><EFBFBD>嗆挾銵<EFBFBD>𢆡霈∪<EFBFBD>-V2.2-<2D>滨垢<E6BBA8>嗆<EFBFBD>隡睃<E99AA1><E79D83>?md](./銝衤<E98A9D><E8A1A4>嗆挾銵<E68CBE>𢆡霈∪<E99C88>-V2.2-<2D>滨垢<E6BBA8>嗆<EFBFBD>隡睃<E99AA1><E79D83>?md) 潃鐥<E6BD83>潃?
|
||||
**<EFBFBD><EFBFBD>𧋦<EFBFBD><EFBFBD>蟮嚗?*
|
||||
- **V2.2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨垢<EFBFBD>嗆<EFBFBD>隡睃<EFBFBD>嚗?* - 2025-11-09 潃?敶枏<E695B6><E69E8F><EFBFBD>𧋦
|
||||
- <EFBFBD>詨<EFBFBD>靚<EFBFBD>㟲嚗𡁜<EFBFBD>蝡舀沲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>滚<EFBFBD>Week 2嚗屸<E59A97><E5B1B8>滩<EFBFBD>撌? - LLM蝵穃<E89DB5><E7A983>刻<EFBFBD><E588BB>訖eek 5嚗諹<E59A97><E8ABB9>行瓲敹? - 4銝林LM撌脤<E6928C>蝵殷<E89DB5>DeepSeek/GPT-5/Claude-4.5/Qwen嚗?
|
||||
**四周规划:**
|
||||
- **Week 1:** Schema隔离(3详细+7空)
|
||||
- **Week 2:** **前端统一架构** + 后端分层 ⭐⭐⭐
|
||||
- **Week 3-4:** ASL核心功能(4个LLM筛选)
|
||||
- **Week 5+:** LLM网关统一 + 其他模块
|
||||
|
||||
**当前版本:** [下一阶段行动计划-V2.2-前端架构优先版.md](./下一阶段行动计划-V2.2-前端架构优先版.md) ⭐⭐⭐
|
||||
|
||||
**版本历史:**
|
||||
- **V2.2版(前端架构优先)** - 2025-11-09 ⭐ 当前版本
|
||||
- 核心调整:前端架构提前到Week 2,避免返工
|
||||
- LLM网关推迟到Week 5,聚焦核心
|
||||
- 4个LLM已配置(DeepSeek/GPT-5/Claude-4.5/Qwen)
|
||||
|
||||
- **V2.1版(务实版)** - 2025-11-09
|
||||
- <EFBFBD>詨<EFBFBD>靚<EFBFBD>㟲嚗?霂衣<E99C82>+7蝛搴chema蝑𣇉裦
|
||||
- Just-in-time霈曇恣嚗屸<EFBFBD><EFBFBD>滩<EFBFBD>摨西挽霈?
|
||||
- 核心调整:3详细+7空Schema策略
|
||||
- Just-in-time设计,避免过度设计
|
||||
|
||||
- **V2.0版(模块化架构优先)** - 2025-11-07
|
||||
- 核心调整:Schema隔离 + 独立部署架构
|
||||
|
||||
- **V1.0<EFBFBD><EFBFBD><EFBFBD>ASL<EFBFBD>臬𢆡嚗?* - 2025-11-06
|
||||
- <EFBFBD>嘥<EFBFBD><EFBFBD><EFBFBD>𧋦嚗𡁶凒<EFBFBD>亙鍳<EFBFBD>杗SL撘<EFBFBD><EFBFBD>?
|
||||
- **V1.0版(ASL启动)** - 2025-11-06
|
||||
- 初始版本:直接启动ASL开发
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD><EFBFBD> 敹恍<E695B9>笔紡<E7AC94>?
|
||||
## 🚀 快速导航
|
||||
|
||||
### 我想...
|
||||
|
||||
**📋 了解项目整体规划**
|
||||
<EFBFBD>?<3F>亦<EFBFBD> [<EFBFBD>港<EFBFBD>撘<EFBFBD><EFBFBD>𤏸恣<EFBFBD>哋(./01-<2D>港<EFBFBD>撘<EFBFBD><E69298>𤏸恣<F0A48FB8>?README.md)
|
||||
→ 查看 [整体开发计划](./01-整体开发计划/README.md)
|
||||
|
||||
**<2A>㴓 鈭<>圾敶枏<E695B6><E69E8F>嗆挾閬<E68CBE><E996AC>隞<EFBFBD>銋?*
|
||||
<EFBFBD>?<3F>亦<EFBFBD> [銝衤<E98A9D><E8A1A4>嗆挾銵<E68CBE>𢆡霈∪<E99C88>-V2.2嚗<EFBFBD><EFBFBD>蝡舀沲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗处(./銝衤<E98A9D><E8A1A4>嗆挾銵<E68CBE>𢆡霈∪<E99C88>-V2.2-<2D>滨垢<E6BBA8>嗆<EFBFBD>隡睃<E99AA1><E79D83>?md) 潃鐥<EFBFBD>潃?
|
||||
**<2A><> <20>亦<EFBFBD><E4BAA6>砍𪂹閬<F0AA82B9><E996AC>隞<EFBFBD>銋?*
|
||||
<EFBFBD>?<3F>亦<EFBFBD> [瘥誩𪂹霈∪<E99C88>](./03-瘥誩𪂹霈∪<E99C88>/README.md)
|
||||
**🎯 了解当前阶段要做什么**
|
||||
→ 查看 [下一阶段行动计划-V2.2(前端架构优先版)](./下一阶段行动计划-V2.2-前端架构优先版.md) ⭐⭐⭐
|
||||
|
||||
**📊 查看本周要做什么**
|
||||
→ 查看 [每周计划](./03-每周计划/README.md)
|
||||
|
||||
**🔍 了解某个决策为什么这样做**
|
||||
<EFBFBD>?<3F>亦<EFBFBD> [<EFBFBD>喟<EFBFBD>霈啣<EFBFBD>](./04-<EFBFBD>喟<EFBFBD>霈啣<EFBFBD>/README.md)
|
||||
→ 查看 [决策记录](./04-决策记录/README.md)
|
||||
|
||||
---
|
||||
|
||||
**蝏湔擪<EFBFBD><EFBFBD><EFBFBD>** 憿寧𤌍蝞∠<E89D9E>蝏?
|
||||
**<EFBFBD>𥕦遣<EFBFBD>交<EFBFBD>嚗?* 2025-11-06
|
||||
**维护者:** 项目管理组
|
||||
**创建日期:** 2025-11-06
|
||||
**最后更新:** 2025-11-07
|
||||
|
||||
Reference in New Issue
Block a user