mirror of
https://gitcode.com/gitea/gitea.git
synced 2025-06-01 07:37:50 +08:00
Add link to user profile in markdown mention only if user exists (#21533)
Previously mentioning a user would link to its profile, regardless of whether the user existed. This change tests if the user exists and only if it does - a link to its profile is added. * Fixes #3444 Signed-off-by: Yarden Shoham <hrsi88@gmail.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
29
services/markup/processorhelper.go
Normal file
29
services/markup/processorhelper.go
Normal file
@ -0,0 +1,29 @@
|
||||
// Copyright 2022 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package markup
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"code.gitea.io/gitea/models/user"
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/markup"
|
||||
)
|
||||
|
||||
func ProcessorHelper() *markup.ProcessorHelper {
|
||||
return &markup.ProcessorHelper{
|
||||
IsUsernameMentionable: func(ctx context.Context, username string) bool {
|
||||
// TODO: cast ctx to modules/context.Context and use IsUserVisibleToViewer
|
||||
|
||||
// Only link if the user actually exists
|
||||
userExists, err := user.IsUserExist(ctx, 0, username)
|
||||
if err != nil {
|
||||
log.Error("Failed to validate user in mention %q exists, assuming it does", username)
|
||||
userExists = true
|
||||
}
|
||||
return userExists
|
||||
},
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user