Skip to content

[FEATURE REQUEST] #3720

@quyirong

Description

@quyirong

Why this feature?

在当前 OpenIM 的 Web 和 Admin 系统中,缺少用户举报与内容治理能力。

在实际生产环境中,IM 系统不仅需要基础的消息通信能力,还需要具备基础的安全治理能力,例如:

  • 用户举报骚扰、诈骗、广告等行为
  • 管理员对举报内容进行审核与处理
  • 对违规用户进行封禁或限制

目前 OpenIM 仅提供通信能力,但缺少“业务治理闭环”,导致在真实社交或企业协作场景中无法满足合规与安全需求。

添加举报功能可以:

  1. 提升平台安全性与可控性
  2. 满足企业级或社交产品的基础合规需求
  3. 降低运营风险(骚扰、诈骗、垃圾信息)
  4. 补齐 IM 产品的“治理能力闭环”

在实际运营中,用户账号可能因为误判、批量风控或规则误触发而被封禁。

如果只有“封禁机制”而没有“申诉机制”,会导致以下问题:

  1. 用户无法自证清白,体验极差
  2. 管理误封无法纠正
  3. 平台缺少纠错机制,降低公信力
  4. 企业场景中不满足合规与申诉要求

因此建议增加“申诉系统”,形成完整治理闭环:
封禁 → 申诉 → 审核 → 结果反馈

Suggested Solution

建议在 OpenIM Web 与 Admin 系统中增加完整的“举报与工单处理机制”,包括以下设计:

1. Web 端(用户侧)

在以下位置增加“举报入口”:

  • 用户资料卡片
  • 聊天消息右键菜单
  • 群成员列表

举报内容字段建议:

  • 举报对象(userID / groupID / messageID)
  • 举报类型(骚扰 / 诈骗 / 色情 / 广告 / 其他)
  • 举报说明(可选)
  • 时间戳

提交后调用统一 API:
POST /api/report


2. 后端服务

新增 report service:

  • 接收举报数据
  • 写入 MongoDB / MySQL(report 表)
  • 支持状态流转:pending / processing / resolved / rejected

3. Admin 管理端

新增“举报工单模块”:

  • 举报列表查看
  • 按状态筛选(未处理 / 已处理)
  • 支持查看聊天上下文
  • 支持封禁用户 / 删除内容 / 标记处理结果

4. 可扩展能力(建议)

  • 举报自动风控(关键词 / 高频行为)
  • 多次举报自动降权或封禁
  • 与消息审计系统联动

该设计可以形成完整闭环:
用户举报 → 后台审核 → 管理员处理 → 用户行为治理

建议在 OpenIM 中增加“用户申诉系统”,与封禁机制联动:


1. 客户端(Web / App)

当用户账号处于以下状态时:

  • 被封禁(banned)
  • 限制登录(restricted)

在登录页或提示页增加:

👉 “提交申诉”入口

申诉表单字段:

  • 用户ID
  • 申诉原因(文本描述)
  • 申诉说明(详细情况)
  • 证据材料(可选上传图片 / 截图)
  • 联系方式(可选)

提交 API:

POST /api/appeal


2. 后端服务(Appeal Service)

新增申诉模块:

  • 接收申诉请求

  • 存储申诉记录(MongoDB / MySQL)

  • 支持状态流转:

    pending(待处理)
    reviewing(审核中)
    approved(通过,解封)
    rejected(拒绝)

  • 关联用户封禁状态


3. Admin 管理端

新增“申诉工单模块”:

功能包括:

  • 申诉列表查看
  • 按状态筛选
  • 查看用户历史封禁记录
  • 查看申诉内容(文本 + 图片)
  • 一键操作:
    • 解除封禁
    • 保持封禁
    • 追加处罚

4. 数据结构建议(示例)

{
  "user_id": "12345",
  "reason": "账号被误封",
  "description": "我只是正常聊天,没有违规",
  "evidence": [
    "https://xxx.com/image1.png"
  ],
  "status": "pending",
  "created_at": "2026-04-25"
}







### Additional Information

_No response_

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions