mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	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>
		
			
				
	
	
		
			30 lines
		
	
	
		
			815 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			815 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// 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
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 |