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:
2026-01-16 13:42:10 +08:00
parent 98d862dbd4
commit 66255368b7
560 changed files with 70424 additions and 52353 deletions

View File

@@ -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.0ASL启动** - 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