feat: opaque session、安装/发帖 SSR 与最小 Admin 后台

浏览器登录改为 DB sessions(可吊销);敏感词与 OIDC PEM 入 settings;
落地安装向导、注册发帖与 /admin 仪表盘/板块/审核/设置。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-29 05:44:16 +08:00
parent 3f50316ad0
commit fde5f628ec
80 changed files with 4148 additions and 1849 deletions

View File

@@ -345,6 +345,29 @@ func (s *CommentService) PendingCommentCount() (int64, error) {
return n, err
}
// ListPending 待审评论列表(管理端)
func (s *CommentService) ListPending(page, size int) ([]models.Comment, int64, error) {
if page < 1 {
page = 1
}
if size < 1 {
size = 30
}
if size > 100 {
size = 100
}
db := models.DB.Model(&models.Comment{}).
Where("status = ?", models.ContentStatusPending).
Preload("User").Preload("Post")
var total int64
if err := db.Count(&total).Error; err != nil {
return nil, 0, err
}
var list []models.Comment
err := db.Order("id asc").Offset((page - 1) * size).Limit(size).Find(&list).Error
return list, total, err
}
func (s *CommentService) Delete(userID, commentID uint, isAdmin bool) error {
if !isAdmin {
return ErrPermissionDenied