restrict v4
This commit is contained in:
@@ -193,7 +193,8 @@ func PublishAnswer(ctx context.Context, pageUser *db.User, question *db.Question
|
||||
// 顺序不能提前到审核之前 —— 审核失败(违规或审核源不可用,fail-closed)会直接返回,
|
||||
// 那时题目已经被改成私密,等于箱主一次失败的编辑让原有公开内容凭空消失。
|
||||
// 放在这里仍然满足「任何时刻都不出现公开 + 已作答」:此刻它还是一条未作答的私密题。
|
||||
if db.RestrictionAtLeast(restrictionLevel, db.RestrictionL2) {
|
||||
forcedPrivate := db.RestrictionAtLeast(restrictionLevel, db.RestrictionL2)
|
||||
if forcedPrivate {
|
||||
if err := db.Questions.SetPrivate(ctx.Request().Context(), question.ID); err != nil {
|
||||
logrus.WithContext(ctx.Request().Context()).WithError(err).Error("Failed to force question private")
|
||||
ctx.SetInternalError()
|
||||
@@ -245,7 +246,13 @@ func PublishAnswer(ctx context.Context, pageUser *db.User, question *db.Question
|
||||
}
|
||||
})
|
||||
|
||||
ctx.SetSuccessFlash(i18n.T(ctx.Lang(), "question.flash.answered"))
|
||||
// L2 下必须明确告知「已转为私密」:单题页对箱主本人仍是 200、内容照常显示,
|
||||
// 若继续提示「回答发布成功」,箱主会以为一切照旧(实测就是这样误判的)。
|
||||
if forcedPrivate {
|
||||
ctx.SetSuccessFlash(i18n.T(ctx.Lang(), "question.flash.answeredPrivate"))
|
||||
} else {
|
||||
ctx.SetSuccessFlash(i18n.T(ctx.Lang(), "question.flash.answered"))
|
||||
}
|
||||
ctx.Redirect(fmt.Sprintf("/_/%s/%d", pageUser.Domain, question.ID))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user