新增 POST /api/admin/notices、PATCH /api/admin/notices/{id}

保留超级管理员权限边界
支持草稿、发布、置顶、自动摘要
HTML 净化,拦截脚本和危险链接
公告更新与审计日志同事务提交
新增开关 ADMIN_NATIVE_NOTICE_WRITES_ENABLED=false
管理端公告列表和系统自动公告暂时仍由 Node 处理
This commit is contained in:
2026-07-23 08:41:53 +08:00 Unverified
parent 3665aa3aa9
commit 9e21a277f0
14 changed files with 350 additions and 21 deletions
@@ -33,6 +33,16 @@ public sealed class NoticeContentFormatterTests
Assert.Contains("rel=\"noopener noreferrer\"", result, StringComparison.Ordinal);
}
[Fact]
public void PlainText_PreservesBlockBoundariesAndDecodesEntities()
{
const string source = "<p>第一段&nbsp;内容</p><ul><li>第二项</li></ul>";
var result = _formatter.PlainText(source);
Assert.Equal("第一段 内容 第二项", result);
}
[Fact]
public void ContentHtml_ConvertsPlainTextParagraphsWithoutTrustingMarkup()
{