[API 封禁] 补齐封禁检查缺口
bootstrap 全局 browse 场景检查:
ban_type=2/3持 token 禁用全部 API(管理员组豁免)。auth.php login:密码验证后补
checkBanByScene(login)(对齐 Webroute/user.php)。refresh 分支:续期前拦截封禁用户(
ApiAuthService::refreshTokens返回值新增uid)。post.php / thread.php:回帖/编辑、发帖/编辑主题补
checkBanByScene(post)(含禁言)。user.php PUT 改密:补
checkBanByScene(password)检查(锁定用户不能改密,对齐 Web)。bootstrap 新增
api_check_ban_scene()辅助函数。
[安全] 修复 API refresh token 并发刷新竞态
refreshTokens()的 used 标记改为原子条件更新,并发请求仅首个成功签发新 token 对。竞态败者仅本次 401、不撤销整链(合法多标签页双发不误伤),时序重用仍走既有整链撤销。
[积分防刷] 修复收藏积分并发重复发放
route/thread.php收藏分支积分改以数据层操作真实生效为门控(对齐点赞分支范式):favorite/be_favorited需thread_favorite_create()返回 1(真新增)。unfavorite需thread_favorite_delete()返回受影响行数 > 0(真删除)。
并发双击/取消收藏的败者请求不再发分扣分。
[xnx_quest] 1.4.32 → 1.4.35
1.4.32
后台审核页翻页修复:
pagination()裸<li>缺ul.pagination外壳致页码竖排无样式。空筛选条件时
count()走 information_schema 估算值致分页页数错/消失,getApplications/getLogs空条件改恒真条件强制精确计数。submitCustomApplication入库失败补xn_log诊断。
1.4.33
自定义任务被拒后重置步骤进度:
reviewApplication拒绝分支清xnx_quest_step_progress(此前旧证据保留致卡片无表单可改、"提交审核"只能原样重交同一内容)。审核历史
evidence_json快照不受影响,重交间隔仍由checkResubmitInterval按review_date把关。
1.4.34
被拒后重交等待提示:任务卡片间隔内显示"被拒绝 + 距重新提交还需约 N 小时"双 chip,步骤表单同步锁定;间隔过后自动恢复可编辑。
新增 lang 键
quest_resubmit_wait(三语言同步)。
1.4.35 自定义任务卡片 UI 四项改造:
步骤区改横排 flex-wrap(CSS
.xq-stepsrow+wrap,步骤卡 flex:1 1 240px,移动端单列)。visit_url步骤不再展示原始 URL,改为"复制链接"按钮(复制即标记已访问),完成态快照同样保留复制按钮。人工审核/自定义 badge 从标题行移到奖励 badge 之后。
重交等待期内步骤提交控件与"提交审核"按钮置灰,拒绝原因+N 小时提示移到提交审核按钮下方。
新增 lang 键
quest_step_copy_url_btn(三语言)。
[布局] 后台关闭左侧导航时的前台栅格调整
后台关闭左侧导航(
sidebar_nav_enable=0)时前台三栏布局左栏不再占栅格位,中栏自动扩宽占满剩余空间(右栏存在时 xl 占 9 栅格,否则占满 12)。同步修复
leostudio_theme_blue主题 overwrite 布局(1.2.2)。
[布局] 帖子详情页左侧操作栏栅格 2→1 列
layout_three_column新增$col_left参数默认 2,中栏自动补位到col-xl-8。.thread-sidebar-btn移除margin-left:90px改为窄列内居中。static_version→1.4.249;leostudio_theme_blueoverwrite 同步(1.2.2)。
[插件] xnx_read 1.0.1
修复沉浸阅读模式失效:thread 中栏改
col-xl-8后插件写死的.col-xl-7选择器失配,改用nth-last-child(2)结构定位 +flex-grow自动填满,不再依赖具体栅格值。
[钩子] sidebar_right 用户卡片子区域新增 5 个注入点
登录态:
index_site_brief_user_after/signature_after/user_nav_after。未登录态:
guest_brief_after/guest_stats_after。xnx_hook_helper1.1.3 锚点文件已再生成。





