帖子编辑权限逻辑修复
xiaobai 18小时前

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编辑 ,原因:
最新回复 (0)
全部楼主
返回
xiaobai
二级用户组
27
主题数
4
帖子数
扫码访问