You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现新闻板块仅登录用户可见自身隐藏帖子的功能?

隐藏帖子权限控制实现方案

核心规则梳理

  • 帖子分为两种状态:post_status=1(公开)、post_status=0(隐藏)
  • 公开帖子所有用户可见;隐藏帖子仅发帖的登录用户本人能查看,其他用户完全看不到
  • 新闻板块严格执行此规则:禁止向非发帖人展示隐藏帖子,仅允许登录用户自主切换自己帖子的公开/隐藏状态

核心SQL查询实现

查询帖子列表时,直接通过WHERE条件过滤出当前用户有权查看的内容:

SELECT * FROM post
WHERE post_status = 1 OR (post_user = $user AND post_status = 0)
  • $user为当前登录用户的ID(未登录时此值为空,此时只会返回公开帖子)
  • 该条件确保:要么是所有用户都能看的公开帖子,要么是当前用户自己发布的隐藏帖子

配套代码逻辑补充

如果需要展示发帖用户的信息,先遍历查询到的帖子列表获取每个帖子的post_user(发帖用户ID),再执行用户信息查询:

-- 遍历帖子拿到$postUserId后执行
SELECT * FROM users WHERE user_id = $postUserId

注:无需额外权限校验,因为能出现在列表里的帖子要么是公开内容,要么是当前用户自己的帖子,对应的用户信息可正常展示。

额外注意事项

  • 未登录用户访问时,$user为空,WHERE条件会自动过滤所有隐藏帖子,仅返回公开内容
  • 新闻板块要确保所有帖子列表查询都必须带上上述过滤条件,禁止出现绕过权限的查询入口
  • 用户修改帖子状态时,需校验操作权限:仅允许用户修改自己发布的帖子的post_status值

内容的提问来源于stack exchange,提问作者Bruno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 01:12:48