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,32 +1,32 @@
|
||||
# REDCap模块文档
|
||||
|
||||
**鐗堟湰锛?* v1.0
|
||||
**版本:** v1.0
|
||||
**最后更新:** 2026-01-02
|
||||
**模块状态:** 🟢 本地环境已部署,API开发中
|
||||
|
||||
---
|
||||
|
||||
## 馃殌 蹇<>€熷紑濮?
|
||||
## 🚀 快速开始
|
||||
|
||||
### 我想部署REDCap
|
||||
馃憠 **[10-REDCap_Docker閮ㄧ讲鎿嶄綔鎵嬪唽.md](./01-閮ㄧ讲涓庨厤缃?10-REDCap_Docker閮ㄧ讲鎿嶄綔鎵嬪唽.md)** 猸?
|
||||
👉 **[10-REDCap_Docker部署操作手册.md](./01-部署与配置/10-REDCap_Docker部署操作手册.md)** ⭐
|
||||
|
||||
杩欐槸鏈€鏍稿績鐨勬枃妗o紒鍖呭惈锛?
|
||||
- 鉁?浠?鍒?鐨勫畬鏁撮儴缃叉祦绋?
|
||||
- 鉁?Docker鏂囦欢澶嶇敤璇存槑
|
||||
- 鉁?甯歌<E794AF>闂<EFBFBD><E99782>涓庤В鍐虫柟妗?
|
||||
- 鉁?閫傜敤浜庢湰鍦?ECS/鍖婚櫌鐜<E6AB8C><E9909C>
|
||||
这是最核心的文档!包含:
|
||||
- ✅ 从0到1的完整部署流程
|
||||
- ✅ Docker文件复用说明
|
||||
- ✅ 常见问题与解决方案
|
||||
- ✅ 适用于本地/ECS/医院环境
|
||||
|
||||
**30鍒嗛挓瀹屾垚閮ㄧ讲锛?*
|
||||
**30分钟完成部署!**
|
||||
|
||||
---
|
||||
|
||||
### 我遇到问题了
|
||||
馃憠 **[13-閮ㄧ讲闂<EFBFBD><EFBFBD>鎺掓煡鎵嬪唽.md](./01-閮ㄧ讲涓庨厤缃?13-閮ㄧ讲闂<E8AEB2><E99782>鎺掓煡鎵嬪唽.md)** 馃敡
|
||||
👉 **[13-部署问题排查手册.md](./01-部署与配置/13-部署问题排查手册.md)** 🔧
|
||||
|
||||
基于实际踩坑经验,包含:
|
||||
- ERR_CONTENT_DECODING_FAILED解决方案
|
||||
- 鐧诲綍澶辫触锛圕RLF姹℃煋锛夎В鍐虫柟妗?
|
||||
- 登录失败(CRLF污染)解决方案
|
||||
- Base URL配置错误修复
|
||||
- MySQL连接问题排查
|
||||
|
||||
@@ -36,41 +36,41 @@
|
||||
|
||||
### [00-模块概览](./00-模块概览/)
|
||||
- [00-REDCap模块文档导航.md](./00-模块概览/00-REDCap模块文档导航.md) - 完整文档索引
|
||||
- [02-REDCap瀵规帴鎬讳綋鏂规<EFBFBD>.md](./00-妯″潡姒傝<EFBFBD>/02-REDCap瀵规帴鎬讳綋鏂规<EFBFBD>.md) - 鎶€鏈<E282AC>灦鏋勮<E98F8B>璁?
|
||||
- [03-REDCap瀵规帴椋庨櫓璇勪及涓庢妧鏈<EFBFBD>寫鎴樺垎鏋?md](./00-妯″潡姒傝<EFBFBD>/03-REDCap瀵规帴椋庨櫓璇勪及涓庢妧鏈<EFBFBD>寫鎴樺垎鏋?md) - 椋庨櫓璇勪及
|
||||
- [02-REDCap对接总体方案.md](./00-模块概览/02-REDCap对接总体方案.md) - 技术架构设计
|
||||
- [03-REDCap对接风险评估与技术挑战分析.md](./00-模块概览/03-REDCap对接风险评估与技术挑战分析.md) - 风险评估
|
||||
- [04-生产环境部署决策报告_ECS_vs_SAE.md](./00-模块概览/04-生产环境部署决策报告_ECS_vs_SAE.md) - ECS vs SAE对比
|
||||
|
||||
### [01-閮ㄧ讲涓庨厤缃甝(./01-閮ㄧ讲涓庨厤缃?) 猸?
|
||||
- **[10-REDCap_Docker閮ㄧ讲鎿嶄綔鎵嬪唽.md](./01-閮ㄧ讲涓庨厤缃?10-REDCap_Docker閮ㄧ讲鎿嶄綔鎵嬪唽.md)** - 鏍稿績閮ㄧ讲鏂囨。
|
||||
- [13-閮ㄧ讲闂<EFBFBD><EFBFBD>鎺掓煡鎵嬪唽.md](./01-閮ㄧ讲涓庨厤缃?13-閮ㄧ讲闂<E8AEB2><E99782>鎺掓煡鎵嬪唽.md) - 闂<><E99782>瑙e喅璁板綍
|
||||
### [01-部署与配置](./01-部署与配置/) ⭐
|
||||
- **[10-REDCap_Docker部署操作手册.md](./01-部署与配置/10-REDCap_Docker部署操作手册.md)** - 核心部署文档
|
||||
- [13-部署问题排查手册.md](./01-部署与配置/13-部署问题排查手册.md) - 问题解决记录
|
||||
|
||||
### [02-绯荤粺閰嶇疆涓庤繍缁碷(./02-绯荤粺閰嶇疆涓庤繍缁?)
|
||||
- 馃毀 20-REDCap绯荤粺閰嶇疆鎵嬪唽.md锛堣<E9949B>鍒掍腑锛?
|
||||
- 馃毀 21-REDCap鏃ュ父杩愮淮鎵嬪唽.md锛堣<E9949B>鍒掍腑锛?
|
||||
- 馃毀 22-REDCap鍗囩骇鎸囧崡.md锛堣<E9949B>鍒掍腑锛?
|
||||
### [02-系统配置与运维](./02-系统配置与运维/)
|
||||
- 🚧 20-REDCap系统配置手册.md(规划中)
|
||||
- 🚧 21-REDCap日常运维手册.md(规划中)
|
||||
- 🚧 22-REDCap升级指南.md(规划中)
|
||||
|
||||
### [03-API瀵规帴涓庡紑鍙慮(./03-API瀵规帴涓庡紑鍙?)
|
||||
- [33-REDCap浜屾<EFBFBD>寮€鍙戞繁搴︽寚鍗?md](./03-API瀵规帴涓庡紑鍙?33-REDCap浜屾<EFBFBD>寮€鍙戞繁搴︽寚鍗?md) - External Modules寮€鍙?
|
||||
- 馃毀 30-REDCap_API浣跨敤鎸囧崡.md锛堝紑鍙戜腑锛?
|
||||
- 馃毀 31-IIT_Manager涓嶳EDCap瀵规帴璁捐<EFBFBD>.md锛堝紑鍙戜腑锛?
|
||||
- 馃毀 32-REDCap_API_Adapter寮€鍙戞寚鍗?md锛堝紑鍙戜腑锛?
|
||||
### [03-API对接与开发](./03-API对接与开发/)
|
||||
- [33-REDCap二次开发深度指南.md](./03-API对接与开发/33-REDCap二次开发深度指南.md) - External Modules开发
|
||||
- 🚧 30-REDCap_API使用指南.md(开发中)
|
||||
- 🚧 31-IIT_Manager与REDCap对接设计.md(开发中)
|
||||
- 🚧 32-REDCap_API_Adapter开发指南.md(开发中)
|
||||
|
||||
### [04-鍙傝€冭祫鏂橾(./04-鍙傝€冭祫鏂?)
|
||||
### [04-参考资料](./04-参考资料/)
|
||||
- 旧版文档存档
|
||||
|
||||
---
|
||||
|
||||
## 📊 当前进度
|
||||
|
||||
| 闃舵<EFBFBD> | 鐘舵€?| 瀹屾垚鏃ユ湡 |
|
||||
| 阶段 | 状态 | 完成日期 |
|
||||
|------|------|----------|
|
||||
| 鎶€鏈<EFBFBD>皟鐮?| 鉁?瀹屾垚 | 2025-12 |
|
||||
| 閮ㄧ讲鏂规<EFBFBD>璁捐<EFBFBD> | 鉁?瀹屾垚 | 2026-01-01 |
|
||||
| **鏈<EFBFBD>湴鐜<EFBFBD><EFBFBD>閮ㄧ讲** | 鉁?**瀹屾垚** | **2026-01-02** |
|
||||
| API Adapter寮€鍙?| 鈴?杩涜<E69DA9>涓?| 棰勮<E6A3B0>2026-01-03 |
|
||||
| 鐢熶骇鐜<EFBFBD><EFBFBD>閮ㄧ讲 | 馃搮 璁″垝涓?| 寰呭畾 |
|
||||
| 技术调研 | ✅ 完成 | 2025-12 |
|
||||
| 部署方案设计 | ✅ 完成 | 2026-01-01 |
|
||||
| **本地环境部署** | ✅ **完成** | **2026-01-02** |
|
||||
| API Adapter开发 | ⏳ 进行中 | 预计2026-01-03 |
|
||||
| 生产环境部署 | 📅 计划中 | 待定 |
|
||||
|
||||
**璁块棶鍦板潃锛?* http://localhost:8080/
|
||||
**访问地址:** http://localhost:8080/
|
||||
**管理员账户:** Admin / Admin123!
|
||||
|
||||
---
|
||||
@@ -79,65 +79,64 @@
|
||||
|
||||
```
|
||||
IIT Manager Agent (企业微信)
|
||||
鈫?
|
||||
↓
|
||||
REDCap API Adapter
|
||||
鈫?
|
||||
↓
|
||||
REDCap系统 (EDC)
|
||||
鈫?
|
||||
鐮旂┒鏁版嵁閲囬泦涓庣<EFBFBD>鐞?
|
||||
↓
|
||||
研究数据采集与管理
|
||||
```
|
||||
|
||||
**鏍稿績鍔熻兘锛?*
|
||||
- 馃搵 鐢靛瓙鏁版嵁閲囬泦锛圗DC锛?
|
||||
**核心功能:**
|
||||
- 📋 电子数据采集(EDC)
|
||||
- 📊 数据字典管理
|
||||
- 🔍 数据质量控制
|
||||
- 馃搱 鎶ヨ〃涓庡<E6B693>鍑?
|
||||
- 📈 报表与导出
|
||||
- 👥 用户权限管理
|
||||
|
||||
---
|
||||
|
||||
## 馃洜锔?Docker閰嶇疆鏂囦欢浣嶇疆
|
||||
## 🛠️ Docker配置文件位置
|
||||
|
||||
**鎵€鏈塂ocker閰嶇疆鏂囦欢閮藉湪锛?*
|
||||
**所有Docker配置文件都在:**
|
||||
```
|
||||
AIclinicalresearch/redcap-docker-dev/
|
||||
鈹溾攢鈹€ Dockerfile.redcap 鉁?100%鍙<EFBFBD><EFBFBD>鐢?
|
||||
├── Dockerfile.redcap ✅ 100%可复用
|
||||
├── docker-compose.yml ⚠️ 需微调
|
||||
鈹溾攢鈹€ docker-compose.prod.yml 鈿狅笍 闇€淇<E282AC>敼鏁版嵁搴撻厤缃?
|
||||
鈹溾攢鈹€ docker-entrypoint.sh 鉁?100%鍙<EFBFBD><EFBFBD>鐢?
|
||||
├── docker-compose.prod.yml ⚠️ 需修改数据库配置
|
||||
├── docker-entrypoint.sh ✅ 100%可复用
|
||||
├── config/
|
||||
鈹? 鈹溾攢鈹€ apache/redcap.conf 鈿狅笍 闇€淇<E282AC>敼鍩熷悕
|
||||
鈹? 鈹溾攢鈹€ php/php.ini 鉁?100%鍙<EFBFBD><EFBFBD>鐢?
|
||||
鈹? 鈹斺攢鈹€ database.php 鉂?蹇呴』鏍规嵁鐜<E5B581><E9909C>瀹氬埗
|
||||
鈹溾攢鈹€ scripts/ 鍙<EFBFBD>€夎緟鍔╄剼鏈?
|
||||
鈹斺攢鈹€ .gitattributes 鉁?100%鍙<EFBFBD><EFBFBD>鐢?
|
||||
│ ├── apache/redcap.conf ⚠️ 需修改域名
|
||||
│ ├── php/php.ini ✅ 100%可复用
|
||||
│ └── database.php ❌ 必须根据环境定制
|
||||
├── scripts/ 可选辅助脚本
|
||||
└── .gitattributes ✅ 100%可复用
|
||||
```
|
||||
|
||||
璇﹁<EFBFBD>锛歔10-REDCap_Docker閮ㄧ讲鎿嶄綔鎵嬪唽.md](./01-閮ㄧ讲涓庨厤缃?10-REDCap_Docker閮ㄧ讲鎿嶄綔鎵嬪唽.md)
|
||||
详见:[10-REDCap_Docker部署操作手册.md](./01-部署与配置/10-REDCap_Docker部署操作手册.md)
|
||||
|
||||
---
|
||||
|
||||
## 📞 获取帮助
|
||||
|
||||
- **閮ㄧ讲闂<EFBFBD><EFBFBD>**锛氭煡鐪?[13-閮ㄧ讲闂<E8AEB2><E99782>鎺掓煡鎵嬪唽.md](./01-閮ㄧ讲涓庨厤缃?13-閮ㄧ讲闂<E8AEB2><E99782>鎺掓煡鎵嬪唽.md)
|
||||
- **部署问题**:查看 [13-部署问题排查手册.md](./01-部署与配置/13-部署问题排查手册.md)
|
||||
- **REDCap官方**:https://projectredcap.org/
|
||||
- **鎶€鏈<EFBFBD>敮鎸?*锛氭煡鐪嬬浉鍏虫枃妗f垨鎻怚ssue
|
||||
- **技术支持**:查看相关文档或提Issue
|
||||
|
||||
---
|
||||
|
||||
## 馃攧 鏈€杩戞洿鏂?
|
||||
## 🔄 最近更新
|
||||
|
||||
| 日期 | 更新内容 |
|
||||
|------|----------|
|
||||
| 2026-01-02 | 鉁?瀹屾垚鏈<E59E9A>湴Docker鐜<72><E9909C>閮ㄧ讲 |
|
||||
| 2026-01-02 | 鉁?鍒涘缓REDCap Docker閮ㄧ讲鎿嶄綔鎵嬪唽 |
|
||||
| 2026-01-02 | 鉁?鍒涘缓閮ㄧ讲闂<E8AEB2><E99782>鎺掓煡鎵嬪唽 |
|
||||
| 2026-01-02 | 鉁?閲嶇粍鏂囨。浣撶郴 |
|
||||
| 2026-01-02 | ✅ 完成本地Docker环境部署 |
|
||||
| 2026-01-02 | ✅ 创建REDCap Docker部署操作手册 |
|
||||
| 2026-01-02 | ✅ 创建部署问题排查手册 |
|
||||
| 2026-01-02 | ✅ 重组文档体系 |
|
||||
|
||||
---
|
||||
|
||||
**鍑嗗<EFBFBD>濂藉紑濮嬩簡鍚楋紵** 馃憠 [寮€濮嬮儴缃瞉(./01-閮ㄧ讲涓庨厤缃?10-REDCap_Docker閮ㄧ讲鎿嶄綔鎵嬪唽.md)
|
||||
|
||||
**准备好开始了吗?** 👉 [开始部署](./01-部署与配置/10-REDCap_Docker部署操作手册.md)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user