# 在线客服系统权限控制页面需求文档 ## 1 需求背景与目标 当前在线客服系统已具备工作台、客户管理、对话记录、知识库、快捷回复、黑名单、数据统计、系统设置八大模块。随着客服团队规模扩大,需要为不同岗位配置差异化的功能访问与操作权限,避免普通客服误改系统配置,同时让主管能够管理团队数据而不触及租户级配置。 ### 1.1 业务目标 - 建立 管理员、客服主管、客服 三级角色体系,覆盖租户内全部功能模块。 - 提供可视化的 角色管理与权限配置页面,管理员可自定义角色权限并分配给账号。 - 明确每个角色的 菜单可见范围、页面操作权限、数据隔离范围,降低越权风险。 ### 1.2 范围说明 本期权限控制聚焦于租户内部的角色与账号管理,不包含平台级多租户运营权限。默认内置三个角色:管理员、客服主管、客服。管理员可新建自定义角色,但系统保留对内置角色的保护(不可删除、不可修改角色标识)。 ## 2 角色定义 | 角色 | 定位 | 数据范围 | 核心能力 | | --- | --- | --- | --- | | 管理员 | 租户最高权限,通常是企业客服负责人或 IT 管理员 | 全租户数据 | 管理账号与角色、配置系统设置、查看全部数据、操作所有模块 | | 客服主管 | 一线客服团队管理者 | 全租户数据(查看),操作受限于权限项 | 监控团队会话、管理团队绩效、维护知识库与快捷回复、管理黑名单 | | 客服 | 一线接待人员 | 仅自己的会话与客户数据 | 使用工作台接待访客、使用知识库/快捷回复、维护自己接待的客户资料 | ## 3 系统模块清单 根据现有系统设计,本次权限控制需要覆盖以下模块与页面。每个模块拆分为「查看」与「操作」两类权限,部分模块还需细分数据范围。 | 一级模块 | 二级页面/功能 | 权限项说明 | | --- | --- | --- | | 工作台 | 会话列表、聊天区、客户信息面板 | 查看会话、回复消息、转接会话、结束会话、添加内部备注、标记优先级 | | 客户管理 | 客户列表、客户详情抽屉 | 查看客户、新增客户、编辑客户、导出客户、管理客户标签、查看全部/仅自己客户 | | 对话记录 | 会话记录列表、会话详情 | 查看对话记录、导出记录、批量归档、查看全部/仅自己记录 | | 知识库 | 知识分类、知识条目 | 查看知识库、新建条目、编辑条目、发布/下架、删除条目、管理分类 | | 快捷回复 | 团队快捷回复、我的快捷回复 | 查看快捷回复、新建团队回复、编辑团队回复、删除团队回复、管理个人回复 | | 黑名单 | 黑名单列表 | 查看黑名单、拉黑访客/设备、解除黑名单 | | 数据统计 | KPI 看板、趋势图、绩效排行 | 查看数据统计、导出报告、查看团队/个人数据 | | 系统设置 | 基本设置、渠道管理、坐席账号、客服分配规则、客户标签、自动回复、工作时间、通知设置 | 查看设置、修改各子项配置 | | 权限控制 | 角色管理、权限配置、成员账号 | 查看角色、创建/编辑角色、删除自定义角色、分配角色给账号 | ## 4 角色权限矩阵 下表定义三个内置角色的默认权限。符号说明:**√** 表示拥有权限,**○** 表示仅查看/仅自己数据,**×** 表示无权限。 | 模块 | 权限项 | 管理员 | 客服主管 | 客服 | | --- | --- | --- | --- | --- | | 工作台 | 查看会话列表 | √ | √ | √ | | 回复访客消息 | √ | √ | √ | | 转接会话给其他客服 | √ | √ | × | | 结束会话 | √ | √ | √ | | 添加内部备注 | √ | √ | √ | | 标记会话优先级 | √ | √ | ○(仅自己) | | 客户管理 | 查看客户列表 | √ | √ | ○(仅自己) | | 新增客户 | √ | √ | √ | | 编辑客户资料 | √ | √ | ○(仅自己) | | 导出客户 | √ | √ | × | | 管理客户标签 | √ | √ | ○(仅自己客户) | | 对话记录 | 查看对话记录 | √ | √ | ○(仅自己) | | 查看会话详情 | √ | √ | ○(仅自己) | | 导出对话记录 | √ | √ | × | | 批量归档记录 | √ | √ | × | | 知识库 | 查看知识库 | √ | √ | √ | | 新建知识条目 | √ | √ | × | | 编辑知识条目 | √ | √ | × | | 发布/下架条目 | √ | √ | × | | 删除知识条目/分类 | √ | ○(主管可删除自己创建) | × | | 快捷回复 | 查看快捷回复 | √ | √ | √ | | 新建团队快捷回复 | √ | √ | × | | 编辑/删除团队回复 | √ | √ | × | | 管理我的快捷回复 | √ | √ | √ | | 黑名单 | 查看黑名单 | √ | √ | × | | 拉黑访客/IP/设备 | √ | √ | × | | 解除黑名单 | √ | √ | × | | 数据统计 | 查看数据统计 | √ | √ | ○(仅个人) | | 导出报告 | √ | √ | × | | 查看客服绩效排行 | √ | √ | ○(仅自己排名) | | 系统设置 | 基本设置 | √ | × | × | | 渠道管理 | √ | × | × | | 坐席账号 | √ | × | × | | 客服分配规则 | √ | × | × | | 客户标签 | √ | √ | × | | 自动回复 | √ | √ | × | | 工作时间 | √ | × | × | | 通知设置 | √ | × | × | | 权限控制 | 查看角色列表 | √ | × | × | | 创建/编辑角色 | √ | × | × | | 删除自定义角色 | √ | × | × | | 给账号分配角色 | √ | × | × | **数据隔离原则**:客服角色在所有模块中默认只能看到「自己接待的会话」和「自己创建/跟进过的客户」;客服主管与管理员可查看全租户数据,但主管的操作权限受限于矩阵中的勾选范围。 ## 5 页面原型设计 权限控制模块包含三个核心页面:角色管理列表、角色权限配置、成员账号管理。以下原型展示页面布局、字段与主要交互,开发时可作为视觉与交互参考。 ### 5.1 角色管理列表页 管理员进入「系统设置 > 权限控制 > 角色管理」后,看到租户内所有角色卡片。内置角色不可删除、不可修改标识,仅可调整权限范围;自定义角色支持完整编辑与删除。 角色管理列表 客服云 工作台 客户管理 对话记录 知识库 快捷回复 黑名单 数据统计 系统设置 角色管理 \+ 新建角色 角色列表 成员账号 操作日志 内置 管理员 配置权限 租户最高权限,可管理账号、角色与全部系统设置。不可删除。 成员数:1权限项:38/38最后更新:系统默认 内置 客服主管 配置权限 管理一线团队,可查看全部数据并维护知识库、快捷回复、黑名单等。 成员数:3权限项:24/38最后更新:2026-07-18 内置 客服 配置权限 一线接待人员,仅可查看和操作自己相关的会话、客户与个人数据。 成员数:12权限项:14/38最后更新:系统默认 自定义 VIP 专属客服 配置权限 删除 基于客服角色扩展,可查看被分配为高优先级客户的资料,但不可导出数据。 成员数:2权限项:16/38最后更新:2026-07-15 **列表页字段说明**:角色名称、类型(内置/自定义)、成员数、已启用权限项数量、最近更新时间、操作按钮。点击「配置权限」进入角色权限配置页。 ### 5.2 角色权限配置页 该页面为角色勾选可访问模块与具体权限项。左侧按模块分组,右侧展示权限项;每个模块支持「查看」与「操作」两类权限,数据范围通过下拉选项单独配置。 配置角色:客服主管 客服主管 内置角色 · 标识 supervisor · 3 位成员 取消 保存 工作台 数据范围:全部会话 查看会话列表 回复访客消息 转接会话 结束会话 添加内部备注 标记优先级 客户管理 数据范围:全部客户 查看客户列表 新增客户 编辑客户资料 导出客户 管理客户标签 系统设置 仅部分子项 客户标签 自动回复 基本设置 渠道管理 坐席账号 工作时间 **交互规则:**取消「查看」权限时,该模块下所有「操作」权限自动取消勾选;勾选任意「操作」权限时,「查看」权限自动勾选。数据范围选项随模块不同而变化(全部 / 仅自己 / 指定分组)。 ### 5.3 成员账号管理页 成员账号页用于查看所有系统账号、分配角色、控制账号状态。只有管理员拥有完整编辑权限;客服主管可在被授权的情况下查看成员列表(本期暂不开放给主管)。 成员账号管理 客服云 工作台 客户管理 对话记录 知识库 快捷回复 黑名单 数据统计 系统设置 成员账号 \+ 新增账号 | 账号 | 姓名 | 角色 | 状态 | 最近登录 | 操作 | | --- | --- | --- | --- | --- | --- | | admin@company.com | 赵总 | 管理员 | 在线 | 2026-07-19 16:52 | 编辑 | | supervisor@company.com | 李主管 | 客服主管 | 在线 | 2026-07-19 15:30 | 编辑 | | agent01@company.com | 王小明 | 客服 | 离线 | 2026-07-18 09:15 | 编辑 | | vip01@company.com | 张小红 | VIP 专属客服 | 在线 | 2026-07-19 14:20 | 编辑 | **批量操作:**选中多个账号后可批量「启用/停用」或「批量更换角色」。被停用的账号立即失去系统访问权限,已登录会话在下次请求时鉴权失败并跳转登录页。 ## 6 权限逻辑规则 权限控制需要在路由、页面元素、数据查询、接口四个层面生效。以下规则确保同一套权限配置在前后端保持一致,防止越权。 ### 6.1 菜单与路由控制 - 用户登录后,前端根据当前账号角色获取 可见菜单列表,未授权的菜单不在侧边栏渲染。 - 用户直接输入未授权页面的 URL 时,前端路由守卫拦截并跳转至「无权访问」提示页或工作台。 - 权限控制模块本身仅对管理员可见,其他角色即使知道路径也无法进入。 ### 6.2 页面元素控制 - 每个操作按钮绑定独立权限码,前端根据权限码的布尔值决定是否渲染。 - 对客服角色,页面中「导出」「删除」「批量操作」等按钮默认隐藏,避免误操作。 - 数据范围相关的筛选器(如「全部客服 / 我的数据」)根据角色默认选中并锁定不可修改。 ### 6.3 数据查询隔离 - **客服**:客户管理、对话记录、数据统计等模块的 SQL 查询必须附加 owner_id = current_user_id 条件,仅返回自己接待或跟进的数据。 - **客服主管**:默认返回全租户数据;若主管被配置为仅查看指定分组,则按分组过滤。 - **管理员**:返回全租户数据,不受额外数据范围限制。 ### 6.4 后端接口鉴权 - 所有写操作接口(POST/PUT/DELETE)必须在网关层校验当前账号是否具备对应权限码。 - 接口鉴权不依赖前端隐藏,必须基于服务端角色权限表实时判断。 - 对于「查看」类接口,除了校验权限码,还需校验数据范围参数是否超出角色允许范围。 ### 6.5 权限生效时机 - 角色权限保存后,下一次请求即时生效,不需要用户重新登录。 - 账号被禁用或角色被变更时,服务端 Token 可保持有效期,但在每次请求时校验账号状态与角色绑定。 - 对于长连接场景(如 WebSocket 会话通道),服务端在推送消息前校验该客服是否仍有权限接收对应会话消息。 ## 7 边界情况与异常处理 ### 7.1 内置角色保护 管理员、客服主管、客服为系统内置角色,拥有固定角色标识(admin、supervisor、agent)。这些角色不可删除、不可修改标识、不可清空全部权限,防止系统失去基础管理能力。 ### 7.2 删除自定义角色 删除自定义角色前,系统需校验该角色下是否仍有账号。若存在绑定账号,则禁止删除并提示「请先为该角色下 N 个账号更换角色」。删除后,原绑定账号默认降级为「客服」角色,需管理员二次确认。 ### 7.3 唯一管理员的保护 当租户内仅剩一个管理员账号时,该账号不可被删除、不可被禁用、不可被降级为其他角色。若管理员需要离职,必须先创建或提升另一个账号为管理员。 ### 7.4 账号状态与权限 - **启用**:账号正常拥有角色对应权限。 - **停用**:账号立即失去所有权限,已登录状态在下次请求时被踢出。 - **待激活**:新创建账号但未完成首次登录,角色已分配但不计入在线客服数。 ### 7.5 数据越权访问 若用户通过接口篡改参数(如将 agent_id 改为他人 ID)试图查看他人数据,服务端应拒绝并记录审计日志。对于频繁越权尝试的账号,可触发风控策略临时锁定。 ### 7.6 角色变更后的会话处理 管理员在客服正在接待访客时调整其角色(如从客服主管降级为客服),该客服已接待的会话不受影响,可继续处理;但变更后新进入的会话按新权限规则分配。若变更导致该客服失去工作台权限,则系统 gracefully 关闭其会话通道并提示重新登录。 ## 8 非功能性需求 ### 8.1 性能 - 权限列表查询接口响应时间 ≤ 200ms(P95)。 - 单次登录后权限数据可缓存于前端,权限变更时通过 WebSocket 或接口响应头通知刷新。 ### 8.2 安全性 - 角色权限数据存储需与业务数据同等级别保护,防止越权篡改。 - 所有权限变更操作记录审计日志,包括操作人、时间、变更前后权限快照。 - 敏感操作(如删除角色、变更管理员角色)需二次确认或输入账号密码确认。 ### 8.3 可扩展性 - 权限项采用码表形式维护,新增模块时只需插入新的权限码即可,无需修改角色表结构。 - 角色与权限之间为多对多关系,支持未来扩展更多自定义角色。 - 数据范围字段预留扩展字段,支持未来按客服分组、按渠道、按客户标签等维度隔离。 ### 8.4 兼容性 - 老版本账号首次迁移至新权限体系时,默认映射为「客服」角色,管理员可后续调整。 - 未命中任何角色的账号(异常数据)默认无任何权限,登录后仅显示「联系管理员」页面。 ## 9 验收标准 以下验收标准用于判断权限控制功能是否达到可上线状态。 | 编号 | 验收项 | 通过标准 | | --- | --- | --- | | A1 | 角色列表 | 管理员可见内置与自定义角色,非管理员无法访问权限控制菜单与页面 | | A2 | 权限配置 | 管理员可编辑角色权限并保存,保存后下次请求即时生效;内置角色标识不可修改 | | A3 | 菜单控制 | 客服登录后侧边栏不显示「系统设置」「权限控制」「黑名单」「数据统计」等未授权菜单 | | A4 | 按钮控制 | 客服在工作台、客户管理、对话记录等页面看不到「导出」「批量操作」「删除」等按钮 | | A5 | 数据隔离 | 客服只能查看自己接待的会话与跟进客户;主管可查看全租户数据;管理员可查看全部 | | A6 | 接口鉴权 | 使用客服账号 Token 调用主管/管理员接口返回 403,并在审计日志中记录 | | A7 | 成员管理 | 管理员可新增、编辑、停用账号并分配角色;停用账号立即无法访问系统 | | A8 | 边界保护 | 无法删除最后一个管理员,删除自定义角色时提示迁移账号,越权操作被拦截 |