Commit Graph

8 Commits

Author SHA1 Message Date
gitadmin 5152d7d4f2 feat: 全路径建单微信推送 + IMAP BODY 空 POP3 fallback
问题背景:
1. 网易企业邮箱 IMAP 对部分邮件返回空 BODY,worker 与手动扫描均无法获取正文
2. 6 处建单入口中仅 worker 有推送(且因取不到邮件而瘫痪),导入工单后无微信通知

改动:
- 新增 pop3-fetcher.ts:共享 POP3 获取模块(Message-ID 精确匹配,
  含 CRLF 防护、TLS 证书校验、50MB 上限、dot-stuffing、超时等加固)
- 新增 ticket-notifier.ts:共享推送模块,fire-and-forget 不阻塞建单,
  动态读 webhook、字段截断、assign_time 护栏、限频去重、5s 超时兜底
- mail-monitor.ts:worker fetchUnread 加 POP3 fallback,恢复自动建单
- worker.ts:检查 createTicketFromEmail 返回值,防与 notifier 双推
- 6 处建单入口接入推送:手动建单/外部API/手动扫描/手动扫描导入(单条)、
  Excel 批量(事务后汇总单条)、worker(保持内联推送)
- scan-emails 内联 POP3 重构为引用共享模块

经三轮多独立审查员审查(设计+实现+集成)+ LOW 修复复审,全部零阻塞。
2026-07-11 17:31:56 +08:00
gitadmin c50c06f095 fix: logout 302 redirect instead of JSON, use x-forwarded-host 2026-07-07 17:18:19 +08:00
gitadmin f507adfaa1 feat: 权限细化 tickets:edit/tickets:delete + 多 Webhook 推送组
- tickets:write 拆分为 tickets:edit(处理工单)和 tickets:delete(删除工单)
- 内置 operator 角色默认同时拥有两个权限
- 迁移脚本自动将已有角色的 tickets:write 替换为两个新权限
- 微信推送支持多个 webhook 推送组,每个可独立启用/禁用
- 每个推送组包含独立的运行参数(检查间隔、静默期)
- 旧格式 wechat.webhook_url 自动迁移为新数组格式
- worker 推送逻辑适配多 webhook(遍历所有启用的推送组)
2026-07-02 17:39:36 +08:00
gitadmin b7b2b34a1f feat: 审计日志 + 邮件监控 + 修复删除工单 bug 2026-06-24 15:43:18 +08:00
gitadmin 1c1555e417 feat: 添加审计日志功能
- 新增 audit.ts 核心函数(writeAuditLog、diffObjects、getClientIP)
- 新增审计日志 API(分页查询、CSV 导出)
- 新增审计日志前端页面
- 更新 Sidebar 添加审计日志菜单项
- 添加审计权限配置
- 在所有写操作 API 中集成审计日志
- 更新 CLAUDE.md 添加审计日志开发规范
2026-06-23 10:59:24 +08:00
gitadmin 200fd7d3a1 feat: 工单API细粒度权限 — create/import/export 独立检查
- POST /api/tickets 手动建单改用 tickets:create
- POST /api/tickets/import 导入改用 tickets:import
- GET /api/tickets/export 新增 tickets:export 权限检查(此前仅有登录检查,是一个安全漏洞)
- PUT/DELETE /api/tickets/[id] 和 PUT /api/tickets/batch 保持 tickets:write 不变
2026-05-14 16:54:34 +08:00
gitadmin 4b6bee1868 feat: SSO 集成 — 共享 JWT + LDAP 认证 + 跨站点用户管理 API
- 新增 src/lib/jwt-shared.ts:共享 JWT 签发/验证(与 OA 共用密钥)
- 新增 src/lib/ldap.ts:LDAP 认证与用户存在性检查
- 新增 src/app/api/internal/roles/route.ts:内部 API 供 OA 查询角色
- 重构 auth.ts:SSO 共享 JWT 验证
- 重构 middleware.ts:SSO 优先 + 本地认证回退
- 更新 docker-compose.yml:挂载 docker.sock 用于运行时 LLDAP 密码获取
- 更新 next.config.ts:serverExternalPackages 添加 ldapts
- 更新 Dockerfile:生产依赖安装优化
2026-05-14 16:37:56 +08:00
gitadmin 6a6d0f309d chore: 初始化仓库 — 工单跟踪系统 2026-05-07 10:34:40 +08:00