2026-06-06 帖子编辑权限逻辑修复
明确编辑规则
- 管理员、超级版主、具备当前版块
allowupdate 的版主/管理组:可编辑帖子,不受作者、时间和关闭帖限制。
- 作者可编辑自己的帖子,但必须同时满足:
- 当前用户是帖子作者。
- 当前用户仍具备该版块
allowpost 权限。
- 主题未关闭。
- 未超过
post_update_expiry 配置的编辑时间限制。
- 默认编辑时间限制为
86400 秒,即 24 小时。
post_update_expiry 设置为 0 时,作者编辑自己的帖子不限制时间。
- 新安装从
conf/conf.default.php 写入该默认配置;旧站点或已生成的 conf/conf.php 由 index.php 运行时补齐默认值。
- 关闭帖仅管理员/版主等具备
allowupdate 权限者可编辑,普通作者不可编辑。
本次修复内容
- 新增统一判断函数
post_user_can_update()。
- 新增统一拒绝原因函数
post_update_deny_message()。
route/post.php 编辑入口改为统一调用上述判断,避免 GET/POST 或按钮展示与实际权限不一致。
- 帖子格式化中的
allowupdate 展示状态改为复用同一规则,确保编辑按钮只在真正可编辑时出现。
- 作者编辑主题首帖时,只允许修改标题、摘要、标签和正文;移动版块、推荐、精华、版主推荐等管理字段仅
allowupdate/allowtop 管理权限可操作。
- 修复原先关闭帖编辑判断中的死分支问题。
已修改文件
model/post.func.php
route/post.php
index.php
conf/conf.default.php
安全效果
- 明确区分“作者编辑”和“管理编辑”。
- 防止普通作者越权编辑关闭帖。
- 防止普通作者通过构造请求修改版块、推荐、精华等管理字段。
- 编辑按钮展示和后端权限校验使用同一规则。
欢迎大家加入QQ交流群:785017513
最后于 17小时前
被xiaobai编辑
,原因: