文档

社区组织成员职能角色管理系统 - 需求文档

社区组织成员职能角色管理系统 - 需求文档

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. 下一步行动

  1. 数据库设计:设计职能角色相关的数据表结构
  2. 预设数据导入:导入6个系统预设角色
  3. API设计:设计角色管理的后端API接口
  4. 界面设计:设计管理后台和展示页面的UI
  5. 开发实现:分阶段实现各个功能模块

本文档已根据需求澄清完成更新,可直接用于开发实现。