提交图
16 次代码提交
作者 SHA1 备注 提交日期
wangsli 9b12451b85 实现企微首次免密自动绑定(07-28-all-account-login-readiness)
ci-minimal / check-minimal (push) Canceled after 0s
ci-e2e / e2e (push) Canceled after 0s
2026-07-28 11:18:50 +08:00
wangsli 6ddedf1e0e 修复认证挑战与可信代理安全边界(07-17-auth-challenge-trusted-proxy-hardening) 2026-07-17 14:24:58 +08:00
wangsli 511efa0b2d 修复认证验证码投递与登录入口体验 05-27-oa-auth-delivery-wecom-entry-fix 2026-05-27 10:14:49 +08:00
wangsli 7f96cc0379 oa-email-code-login 实现邮箱验证码登录 2026-05-27 06:49:58 +08:00
wangsli 5491e922e6 修复 R7E 真机反馈回流与移动入口 WF8-11A R7E-16A R7E-16B BIZ8-12A 2026-05-14 21:53:20 +08:00
wangsli d791357ca2 R85 企微未绑定登录后自动补绑定 2026-05-05 00:05:58 +08:00
wangsli c3f1152824 fix(R61): 增加 session hint cookie 消除 bootstrap refresh 401 2026-04-12 19:29:10 +08:00
wangsli dabb03e55b R61 A1-A6:Auth token refresh 主动续期 2026-04-12 16:45:49 +08:00
wangsli 215e3967bc R18-1/R18-3: 接入企业微信入口绑定与免登回退 2026-03-22 08:33:53 +08:00
wangsli e39e41287e feat(P25-1/P25-5/P26-1/P26-3/P24-1/P29-4): 落地内部OA够用版后端与试运行能力
关联 Issue: P25-1, P25-2, P25-3, P25-4, P25-5, P26-1, P26-3, P24-1, P24-2, P29-1, P29-2, P29-3, P29-4
2026-03-21 18:03:20 +08:00
wangsli 3cc3013d5a feat(server): OIDC 登录支持(F23)
- 引入 openid-client,新增 /api/auth/oidc/login + /api/auth/oidc/callback
- 通过 email 绑定既有员工账号,保留密码登录 fallback
- OIDC 状态存 cookie(HMAC) + PKCE + SameSite=lax 防 CSRF
- 更新 env/README 与 v3 CSV 状态推进
2026-02-09 21:01:36 +08:00
wangsli 38b66b01a6 feat(server): 完成 F15 邮件通知(SMTP/Nodemailer)\n\n- 新增 email 服务(EMAIL_ENABLED + SMTP_* 配置)\n- 待办/审批/付款/密码重置触发可选邮件,失败降级不阻塞\n- 更新 server/README 邮件配置说明,并推进 CSV 状态为 DONE 2026-02-09 19:07:32 +08:00
wangsli 5faf843cee feat(server): 站内通知基础设施与关键事件触发(F14,F30)
- 新增 notifications 表与 API(list/mark-read)
- submit/approve/reject/return/transfer/pay/forgot-password 写入站内通知
- 通知失败降级,不阻塞主流程
2026-02-09 17:45:17 +08:00
wangsli f755ff0dda feat(server): P5 基础能力补齐(组织/报销/代办/认证安全)
- 组织/人员/委派对齐:费用类型、部门、员工别名、配置只读与回归脚本(F2/F3/F26/F27/F29/F31/F40)

- 报销单 PATCH/DELETE 与 items CRUD(事务内重算 total_amount)(F4/F5)

- 行政代提交/代上传后端校验与审计(F7/F8)

- 认证安全基线:首次登录改密、失败锁定、弱密码拦截与回归脚本(F36/F37/F39/F41)
2026-02-09 16:20:31 +08:00
wangsli 479565f737 feat(server): 安全基线(Helmet+限流+脱敏)(E10)
- 注册 @fastify/helmet(CSP 关闭)
- 引入 @fastify/rate-limit,并对 login/forgot/reset 按开关启用
- Fastify logger 增加敏感字段 redaction(authorization/cookie/password 等)
2026-02-08 23:58:55 +08:00
wangsli f527633716 feat(server): 完成 P0+P1 后端能力(工作流、RBAC、付款归档)
P0 MVP:

- 认证:login/refresh/logout/forgot/reset + tokenVersion

- RBAC:角色到权限映射 + requirePermission

- 发票池:upload/bind/signed-url + 判重(VALID_003/VALID_005)

- 报销:create/view/submit + 单号生成

- 工作流:approve + department_manager 解析

P1 扩展:

- 动作:reject/return/withdraw(含 comment)

- transfer:任务转审 + 链路上限 3

- pay:approved -> paid + 发票归档 used_complete

- 动态审批链:approval_rules 驱动

回归脚本:

- smoke-test.sh / regression-dedup.sh / regression-workflow-actions.sh
2026-02-07 16:43:31 +08:00