“允许嵌入媒体帖子的群组”与帖子取消隐藏工作流程之间存在冲突。
如果一个帖子是由不在允许的媒体群组中的用户创建,随后被隐藏(通过标记),当版主编辑该隐藏帖子并添加媒体时,尝试取消隐藏该帖子将失败并出现以下错误:
ActiveRecord::RecordInvalid
Validation failed: 抱歉,您不能在帖子中嵌入媒体项。
取消隐藏过程使用原始作者的权限重新运行媒体验证,而不是版主的权限,从而导致取消隐藏失败。
重现步骤
- 配置允许嵌入媒体帖子的群组,排除低信任度的用户。
- 使用不在允许群组中的用户创建帖子。
- 让帖子被系统标记隐藏。(我不太确定这一点——似乎帖子只能通过标记隐藏,而不能由工作人员手动隐藏?工作人员可以隐藏主题,但不能隐藏单个帖子。如果我错了,请纠正我。)
- 版主编辑隐藏的帖子并插入媒体(图片/视频)。
- 尝试取消隐藏帖子(通过用户界面或在 Rails 控制台中执行
post.unhide!)。 - 操作失败并出现以下错误:
ActiveRecord::RecordInvalid Validation failed: 抱歉,您不能在帖子中嵌入媒体项。