|
|
4c492122dd
|
feat: support announcement image upload
# Conflicts:
# database.py
# db/migrations.py
# routes/admin_api/core.py
# static/admin/.vite/manifest.json
# static/admin/assets/AnnouncementsPage-Btl9JP7M.js
# static/admin/assets/EmailPage-CwqlBGU2.js
# static/admin/assets/FeedbacksPage-B_qDNL3q.js
# static/admin/assets/LogsPage-DzdymdrQ.js
# static/admin/assets/ReportPage-Bp26gOA-.js
# static/admin/assets/SettingsPage-__r25pN8.js
# static/admin/assets/SystemPage-C1OfxrU-.js
# static/admin/assets/UsersPage-DhnABKcY.js
# static/admin/assets/email-By53DCWv.js
# static/admin/assets/email-ByiJ74rd.js
# static/admin/assets/email-DkWacopQ.js
# static/admin/assets/index-D5wU2pVd.js
# static/admin/assets/tasks-1acmkoIX.js
# static/admin/assets/update-DdQLVpC3.js
# static/admin/assets/users-B1w166uc.js
# static/admin/assets/users-CPJP5r-B.js
# static/admin/assets/users-CnIyvFWm.js
# static/admin/index.html
# static/app/.vite/manifest.json
# static/app/assets/AccountsPage-C48gJL8c.js
# static/app/assets/AccountsPage-D387XNsv.js
# static/app/assets/AccountsPage-DBJCAsJz.js
# static/app/assets/LoginPage-BgK_Vl6X.js
# static/app/assets/RegisterPage-CwADxWfe.js
# static/app/assets/ResetPasswordPage-CVfZX_5z.js
# static/app/assets/SchedulesPage-CWuZpJ5h.js
# static/app/assets/SchedulesPage-Dw-mXbG5.js
# static/app/assets/SchedulesPage-DwzGOBuc.js
# static/app/assets/ScreenshotsPage-C6vX2U3V.js
# static/app/assets/ScreenshotsPage-CreOSjVc.js
# static/app/assets/ScreenshotsPage-DuTeRzLR.js
# static/app/assets/VerifyResultPage-BzGlCgtE.js
# static/app/assets/VerifyResultPage-CN_nr4V6.js
# static/app/assets/VerifyResultPage-CNbQc83z.js
# static/app/assets/accounts-BFaVMUve.js
# static/app/assets/accounts-BYq3lLev.js
# static/app/assets/accounts-Bc9j2moH.js
# static/app/assets/auth-Dk_ApO4B.js
# static/app/assets/index-BIng7uZJ.css
# static/app/assets/index-CDxVo_1Z.js
# static/app/index.html
|
2026-01-06 12:15:16 +08:00 |
|
|
|
2d98ab66a3
|
fix: 修复公告关闭功能 - 当次关闭与永久关闭区分
问题:不管选择"当次关闭"还是"永久关闭",都会永久关闭公告
修复:
- 当次关闭:使用 sessionStorage + pageToken
- pageToken 基于 performance.timeOrigin 生成
- 刷新页面后 token 变化,公告重新显示
- 永久关闭:使用 localStorage
- 持久化存储,刷新/重开后不再显示
修改文件:
- app-frontend/src/layouts/AppLayout.vue
- templates/index.html
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 21:51:28 +08:00 |
|
|
|
1b20478a08
|
feat: 风险分定时衰减 + 密码提示修复 + 浏览器池API + next回跳
1. 风险分衰减定时任务:
- services/scheduler.py: 每天 CST 04:00 自动执行 decay_scores()
- 支持 RISK_SCORE_DECAY_TIME_CST 环境变量覆盖
2. 密码长度提示统一为8位:
- app-frontend/src/pages/RegisterPage.vue
- app-frontend/src/layouts/AppLayout.vue
- admin-frontend/src/pages/SettingsPage.vue
- templates/register.html
3. 浏览器池统计API:
- GET /yuyx/api/browser_pool/stats
- 返回 worker 状态、队列等待数等信息
- browser_pool_worker.py: 增强 get_stats() 方法
4. 登录后支持 next 参数回跳:
- app-frontend/src/pages/LoginPage.vue: 检查 ?next= 参数
- 仅允许站内路径(防止开放重定向)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 18:28:21 +08:00 |
|
|
|
89f3fd9759
|
feat: 安全增强 + 删除密码重置申请功能 + 登录提醒开关
安全增强:
- 新增 SSRF、XXE、模板注入、敏感路径探测检测规则
- security/constants.py: 添加新的威胁类型和检测模式
- security/threat_detector.py: 实现新检测逻辑
删除密码重置申请功能:
- 移除 /api/password_resets 相关API
- 删除 password_reset_requests 数据库表
- 前端移除密码重置申请页面和菜单
- 用户只能通过邮��找回密码,未绑定邮箱需联系管理员
登录提醒全局开关:
- email_service.py: 添加 login_alert_enabled 字段
- routes/api_auth.py: 检查开关状态再发送登录提醒
- EmailPage.vue: 添加新设备登录提醒开关
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 12:08:36 +08:00 |
|
|
|
f90b0a4f11
|
Harden auth, CSRF, and email log UX
|
2025-12-26 19:05:42 +08:00 |
|
|
|
9028f7e272
|
ui: 移除定时任务停用标签
|
2025-12-17 22:12:06 +08:00 |
|
|
|
2ef0a10d6f
|
fix(ui): 开关可见与布局对齐
|
2025-12-17 22:03:15 +08:00 |
|
|
|
2f5940d339
|
fix(ui): 开关可见与卡片不拉伸
|
2025-12-17 21:14:54 +08:00 |
|
|
|
0e587ca497
|
ui: 运行中仅显示已浏览内容数
|
2025-12-16 21:23:03 +08:00 |
|
|
|
1b707fdace
|
fix: 浏览内容进度实时显示
|
2025-12-16 21:19:48 +08:00 |
|
|
|
2abb9ab494
|
fix: 账号截图开关持久化与状态推送优化
|
2025-12-16 18:27:45 +08:00 |
|
|
|
9aa28f5b9e
|
添加报表页面,更新用户管理和注册功能
|
2025-12-15 21:39:32 +08:00 |
|
|
|
dab29347bd
|
更新定时任务页面和前端构建
|
2025-12-14 23:09:27 +08:00 |
|
|
|
a346509a5f
|
同步更新:重构路由、服务模块,更新前端构建
|
2025-12-14 21:47:46 +08:00 |
|
|
|
a9c8aac48f
|
fix: 账号页闪烁/浏览类型/截图复制/时区统一
|
2025-12-14 11:30:49 +08:00 |
|
|
|
2ec88eac3b
|
fix(app): refine account progress and screenshots
|
2025-12-14 01:21:31 +08:00 |
|
|
|
8931ad5d7f
|
fix(app): screenshot copy button copies image; add copy link
|
2025-12-14 00:59:02 +08:00 |
|
|
|
b4c7a3eac9
|
fix(app): hide account progress when idle; screenshot uses selected browse_type
|
2025-12-14 00:56:12 +08:00 |
|
|
|
757de96fd9
|
fix(app): allow remark-only edit in accounts
|
2025-12-14 00:38:07 +08:00 |
|
|
|
69443c2de6
|
feat(app): add announcements, feedback, settings (stage 5)
|
2025-12-14 00:27:05 +08:00 |
|
|
|
54cf6fe538
|
feat(app): migrate schedules and screenshots (stage 4)
|
2025-12-14 00:15:19 +08:00 |
|
|
|
9798ed52c3
|
feat(app): migrate /app accounts to Vue SPA (stage 3)
|
2025-12-13 23:56:47 +08:00 |
|
|
|
324e0d614a
|
feat(app): migrate auth pages to Vue SPA (stage 2)
|
2025-12-13 23:30:51 +08:00 |
|
|
|
34f44eed3e
|
feat(app): scaffold Vue3 frontend (stage 1)
|
2025-12-13 22:42:31 +08:00 |
|