社区组织成员职能角色管理系统 - 需求文档
社区组织成员职能角色管理系统 - 需求文档
1. 项目概述
1.1 项目背景
为了更好地管理社区组织成员的职能分工,建立一个职能角色管理系统,支持为组织成员分配具体的职能角色(如生态负责人、商务负责人等),并管理其任期。
1.2 核心价值
- 明确组织内部职责分工
- 提供历史任职记录追溯
- 支持组织归属管理
- 便于外部合作方快速找到对接人
2. 功能需求
2.1 职能角色管理
2.1.1 角色创建与分配
- 混合角色模式:系统预设角色 + 组织自定义角色
- 系统预设角色:由系统提供常用角色模板,所有组织可直接使用
- 组织自定义角色:组织管理员可创建专属角色,仅在本组织内使用
- 角色创建权限:
- 系统预设角色:由系统管理员维护
- 组织自定义角色:组织创建人和管理员可创建
- 角色选择逻辑:分配角色时显示系统预设角色 + 本组织自定义角色
- 职位描述:每个角色需要包含详细的职责说明
- 角色状态:支持启用/停用状态,已被使用的角色不能删除,只能停用
- 组织关联:角色分配时必须与具体组织关联
- 多角色支持:一个人可以在不同组织拥有多个职能角色
- 展示格式:对外展示为"XX组织 + 职能角色"
- 时间冲突规则:同一组织内同一角色在相同时间段内只能有一个人担任,不同组织间无此限制
2.1.2 任期管理
- 任期设置:支持设置具体的任期时间(如2025年1月1日-6月1日)
- 可以有多个任期(也就是不连续的时间段)
- 状态管理:自动识别激活状态(任期内)和历史状态
- 永久保留:职能角色记录永久保留,不删除
2.2 展示系统
2.2.1 个人主页展示
- 激活角色展示:所有激活状态(任期内)的职能角色全部展示
- 历史角色展示:历史角色显示为数字badge(如"历史角色 3"),点击展开查看详情
- 角色样式:激活角色正常显示,历史角色以灰色或特殊样式区分
- 详细信息:鼠标悬停显示任期时间、职责描述等
- 格式展示:显示为"组织名称 + 职能角色"
2.2.2 组织首页展示
- 管理员信息:显示组织创建者和管理员
- 核心成员:展示所有拥有职能角色的成员(且在任期内)
- 角色详情:点击角色可跳转到它对应的 /u/[username] 页面
2.2.3 统一汇总页面
- 页面路径:创建
[locale]/roles
页面 - 全局视图:汇总所有激活状态的职能岗位信息
- 筛选功能:支持按组织、角色类型等维度筛选
- 分页支持:支持分页显示,提升页面性能
- 快速查找:便于合作方快速找到对接人
2.4 管理后台
2.4.1 超级管理员功能
- 统一管理入口:在
app/admin/users
添加"修改职能角色"按钮 - 全员角色管理:可为所有用户分配职能角色
- 系统角色管理:可以创建和管理系统预设角色
2.4.2 组织管理员功能
- 权限范围:组织创建人和管理员拥有相同的管理权限
- 角色创建权限:可以创建组织专属的自定义角色
- 成员管理:仅可为本组织成员分配和管理职能角色
- 角色选择:可查看系统预设角色和本组织自定义角色
- 角色分配权限:可以分配系统预设角色和本组织自定义角色
- 任期管理:设置和调整本组织成员的职能角色任期时间
- 冲突检查:系统自动检查同一组织内角色时间冲突
2.4.3 操作流程
- 角色创建:填写角色名称 → 设置职责描述 → 设置适用场景 → 保存角色
- 角色分配:选择成员 → 选择角色 → 设置任期 → 确认分配
- 角色管理:查看当前角色 → 编辑任期 → 停用/激活角色
- 冲突处理:系统提示时间冲突 → 调整任期 → 重新确认
3. 技术需求
3.1 权限设计
- 独立系统:职能角色系统与现有用户权限管理系统完全分离
- 权限分配:
- 超级管理员:可创建系统预设角色,可为所有用户分配任何角色
- 组织管理员:可创建组织自定义角色,可为本组织成员分配系统预设角色和本组织自定义角色
- 角色可见性:
- 系统预设角色:所有组织可见可用
- 组织自定义角色:仅创建组织可见可用
- 无权限继承:职能角色目前不与用户权限管理系统挂钩
3.2 数据结构
3.2.1 核心表结构
-
职能角色表(functional_roles):
- id, name(角色名称), description(职责描述), applicable_scope(适用场景), organization_id(组织ID,null表示系统预设角色), is_active(启用状态), created_at, updated_at
-
角色分配表(role_assignments):
- id, user_id, organization_id, functional_role_id, start_date, end_date, is_active(当前是否激活), created_at, updated_at
3.2.2 表关系设计
- 角色类型区分:functional_roles表通过organization_id字段区分系统预设角色(null)和组织自定义角色(具体组织ID)
- 外键关联:role_assignments表关联用户、组织和职能角色
- 数据完整性:确保角色分配的时间边界和组织关联的一致性
- 数据保留:所有职能角色记录永久保留,通过is_active字段管理状态
3.3 集成要求
- Better-auth集成:基于现有Better-auth组织系统扩展
- 管理后台集成:在
app/admin/users
页面添加职能角色管理入口 - 数据持久化:确保角色记录的永久性和完整性
4. 实现要点
4.1 核心功能
- ✅ 一个人可以拥有多个职能角色
- ✅ 所有职能角色必须与组织关联
- ✅ 支持任期管理和状态自动识别
- ✅ 系统预设角色 + 组织自定义角色的混合模式
4.2 展示逻辑
- ✅ 优先展示激活状态的角色
- ✅ 默认显示一个角色,多个角色可展开查看
- ✅ 格式:XX组织 + 职能角色
- ✅ 历史角色以特殊样式显示
4.3 管理权限
- ✅ 超级管理员:系统预设角色管理 + 全局角色分配
- ✅ 组织管理员:组织自定义角色创建 + 本组织成员管理
- ✅ 管理入口:app/admin/users页面
5. 预设数据
5.1 系统预设角色
以下角色作为系统预设角色,所有组织都可以使用(角色名使用英文,支持 i18n):
角色英文名 | 角色职责描述 |
---|---|
founder | 组织创始人,负责组织的整体愿景和战略方向 |
co_founder | 联合创始人,协助创始人进行组织管理和发展 |
director | 总负责人,负责组织日常运营和团队管理 |
tech_lead | 技术负责人,负责技术方向和项目管理 |
operations_lead | 运营负责人,负责活动组织和日常运营 |
community_lead | 社区负责人,负责社区建设和成员关系维护 |
marketing_lead | 市场负责人,负责品牌推广和对外宣传 |
partnership_lead | 合作负责人,负责对外合作和商务拓展 |
volunteer_lead | 志愿者负责人,负责志愿者招募和管理 |
finance_lead | 财务负责人,负责财务管理和预算规划 |
content_lead | 内容负责人,负责内容创作和知识分享 |
event_lead | 活动负责人,负责活动策划和执行 |
product_lead | 产品负责人,负责产品规划和用户体验设计 |
design_lead | 设计负责人,负责UI/UX设计和视觉规范制定 |
education_lead | 教育负责人,负责培训课程和知识传播体系 |
mentor_lead | 导师负责人,负责导师项目和新人指导计划 |
learning_lead | 学习负责人,负责学习资源管理和知识传播体系 |
membership_lead | 会员负责人,负责会员招募、留存和发展 |
5.2 角色说明
- 国际化支持:系统预设角色使用英文标识符,支持多语言显示
- 适用场景:以上角色适用于各类组织的基础管理需求
- 扩展性:组织可根据自身需要创建更多自定义角色(自定义角色不需要 i18n)
- 灵活性:组织可选择性使用系统预设角色,不强制全部使用
6. 下一步行动
- 数据库设计:设计职能角色相关的数据表结构
- 预设数据导入:导入6个系统预设角色
- API设计:设计角色管理的后端API接口
- 界面设计:设计管理后台和展示页面的UI
- 开发实现:分阶段实现各个功能模块
本文档已根据需求澄清完成更新,可直接用于开发实现。