Commit Graph

18 Commits

Author SHA1 Message Date
aiyimickey ed43d7b8f7 fix: replace docker exec lldap with direct SQLite reads + fix docker.sock group access
- lldap-db.ts: 读直连 SQLite / 写走 docker exec(LLDAP DELETE 模式不可并发写)
- Dockerfile: Alpine addgroup 语法修复,nextjs 加入 docker 组
- docker-compose.yml: 挂载 LLDAP 数据目录,添加 docker.sock
- next.config.ts: outputFileTracingIncludes bcryptjs
- 所有 API 路由:替换 docker exec lldap 为 lldap-db 工具函数
- 安装 bcryptjs + sqlite3 依赖
2026-07-07 18:05:13 +08:00
aiyimickey 068c996e68 fix: logout redirect uses OIDC_REDIRECT_URI instead of request headers (open redirect fix) 2026-07-07 17:24:49 +08:00
aiyimickey 2e1fa92ca3 fix: OIDC callback V2 + logout 302 redirect with x-forwarded-host 2026-07-07 17:19:34 +08:00
aiyimickey aa44104095 fix: OA退出登录重定向修复 + SSO切换账号按钮 + 生产配置模板
- logout route 使用 request.url.origin 动态获取 base URL
- 登录页添加「使用其他账号登录」按钮
- 新增 config/.env.prod 生产环境配置模板
2026-07-03 12:12:06 +08:00
aiyimickey 34e685843e feat: OA 门户首页新增告警监控卡片 (monitor.tlyq.ai) 2026-07-02 11:25:20 +08:00
aiyimickey 69e50905d8 refactor: P1 共享库迁移
- jwt.ts: 引用 shared/lib/auth/jwt(包装器保持 signSharedJwt/verifySharedJwt)
- middleware.ts: 使用 shared/lib/auth/middleware 工厂
- tsconfig: 添加 @shared/* 路径
- 添加 shared symlink

独立审查通过
2026-07-01 18:43:01 +08:00
aiyimickey 511e1ec9dd feat: SSO 统一认证登录
- 集成 Authelia OIDC,支持统一认证登录
- 添加 OIDC 登录页面和回调处理
- 更新 docker-compose.yml 统一环境变量管理
- 更新 CHANGELOG.md 和 CLAUDE.md
2026-06-30 17:09:23 +08:00
aiyimickey dbde9a6058 fix: logout 端点添加 domain 参数清除跨域 cookie
- logout 端点清除 cookie 时添加 domain 参数
- 修复 .tlyq.ai 域的 tlyq_session cookie 未正确清除的问题
- cookie 设置时 domain=.tlyq.ai,清除时也必须指定相同 domain
2026-06-29 20:05:19 +08:00
aiyimickey ec4bbcb71b feat: SSO 统一认证 + Tailwind CSS + 主题切换下拉菜单 + 登录页统一
- 安装 openid-client v5,新增 OIDC 登录/回调端点
- 安装 Tailwind CSS v4,统一登录页样式
- ThemeToggle 支持浅色/深色/自动三种模式
- middleware 支持已登录用户访问登录页自动跳转首页
- 退出登录重定向到 Authelia end_session
- login/oidc 端点处理会话冲突响应
2026-06-29 18:39:22 +08:00
aiyimickey ae1e58a595 fix: /api/auth/me 从 LLDAP 实时读取 displayName(非 JWT 缓存)
- 修改显示名后右上角个人信息即时更新
- RoleManager 支持 onUserUpdated 回调刷新用户信息
2026-05-18 18:14:17 +08:00
aiyimickey 868c79891f feat: 权限管理支持修改显示名 + PATCH API 扩展
- PATCH /api/admin/users 支持 email + displayName 任一或同时修改
- 权限管理表格:显示名列支持 inline 编辑
- 同步更新 LLDAP + assets/issue
2026-05-18 18:08:08 +08:00
aiyimickey 8dbb841489 chore: 清理垃圾文件 2026-05-18 17:58:25 +08:00
aiyimickey 025f56e163 feat: 新增"同步邮箱至站点"管理按钮 + API 端点
- POST /api/admin/sync-emails:批量同步 LLDAP email → assets/issue
- 用户管理 Tab 栏新增"同步邮箱至站点"按钮
2026-05-18 17:57:57 +08:00
aiyimickey ce3a26ab4c chore: 清理垃圾文件 2026-05-18 17:50:57 +08:00
aiyimickey 32793f7c72 fix: 邮箱同步脚本改为宿主机执行(standalone 容器内无 scripts 目录) 2026-05-18 17:36:59 +08:00
aiyimickey 14abdff875 fix: 修改邮箱同步到 assets/issue + 自适应布局 + 部署后自动批量同步
- api/auth/me PUT + api/admin/users PATCH:写 LLDAP 后同步更新 assets/issue SQLite
- deploy-ai.sh:OA 部署后自动执行批量 email 同步(新服务器首次部署填充历史数据)
- scripts/sync-emails-to-sites.js:批量同步工具脚本
- 全站自适应:移除 maxWidth 硬限制,Form 用 auto-fit grid,表格 overflow-x auto
2026-05-18 17:33:41 +08:00
aiyimickey ab25541200 feat: 邮件 Resend API + 密码设置链接 + 邮箱管理 + UI 重设计 + 时区修复
- 邮件:163 SMTP → Resend API,发件人 noreply@tlyq.ai
- 安全:创建用户发密码设置链接(24h有效),不再明文发密码
- 新增:/setup-password 密码设置页 + setup-token 工具
- 新增:个人信息页 + 权限管理页 显示/修改邮箱
- 修复:创建用户存储真实邮箱(不再拼接 {username}@tlyq.ai)
- 修复:全站 toISOString / datetime('now') → UTC+8
- 设计:用户管理页全宽重设计,Header 1440px 统一
- 调整:用户列表创建时间精确到秒
2026-05-18 16:57:07 +08:00
aiyimickey 0351dba617 feat: OA 统一门户初始化 — LLDAP 认证 + 共享 JWT + 用户管理
- OA 聚合导航首页(站点卡片)
- LLDAP 统一认证登录/登出
- 共享 JWT(tlyq_session, domain=.tlyq.ai)实现跨站点免登录
- 用户管理:创建/删除用户、角色分配、密码修改
- 深色/浅色主题切换
- 邮件通知(163 企业邮箱)
2026-05-14 16:36:03 +08:00